当前位置: 首页 > news >正文

泉州哪里有搭建网站的公司网站宣传与推广的指导思想

泉州哪里有搭建网站的公司,网站宣传与推广的指导思想,贵金属交易app下载,企业vi设计公司上海设计公司题目描述 从上到下按层打印二叉树#xff0c;同一层的节点按从左到右的顺序打印#xff0c;每一层打印到一行。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果#xff1a; [3,9,20,15,7] 提示#xff1a; 节…    题目描述 从上到下按层打印二叉树同一层的节点按从左到右的顺序打印每一层打印到一行。 例如: 给定二叉树: [3,9,20,null,null,15,7],     3    / \   9  20       /  \    15   7     返回其层次遍历结果 [3,9,20,15,7] 提示 节点总数 1000 思路 这个题目的意思很明确就是从根节点开始一层一层打印节点而且节点顺序是从左到右。以上面示例为例3为根节点之后打印它的左右节点920之后再打印20的子节点157。全部打印完成结束。 这道题有点类似图算法中的广度优先搜索先从顶端开始依次遍历图的下一层节点下一层节点遍历完成接着遍历下下一层。仅仅依赖树结构的左右节点关系然后递归遍历我们无法得到最终结果因为随着层数的增加兄弟节点之间没有必然关系他们无法保证从左到右来遍历。 这里我们需要借助一个队列来存放遍历过的节点这样每遍历依次后续的遍历我们从队列开头取元素这样就可以保证按照层级和左右顺序来打印树节点。 代码 package com.xxx.example;import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Queue;public class Offer32PrintTreeNode {private static TreeNode root;private static ListListInteger nodeList new ArrayList();public static void main(String[] args) {TreeNode treeNode new TreeNode(3);TreeNode treeNode1 new TreeNode(9);TreeNode treeNode2 new TreeNode(20);TreeNode treeNode3 new TreeNode(15);TreeNode treeNode4 new TreeNode(7);root treeNode;treeNode2.left treeNode3;treeNode2.right treeNode4;root.left treeNode1;root.right treeNode2;int[] result levelOrder(root);for(int i0;iresult.length;i) {System.out.print(result[i] );}System.out.println();}public static int[] levelOrder(TreeNode root) {if (root null)return new int[0];QueueTreeNode queue new LinkedList();ArrayListInteger list new ArrayList();queue.add(root);while (!queue.isEmpty()) {TreeNode curNode queue.poll();list.add(curNode.val);if (curNode.left ! null)queue.add(curNode.left);if (curNode.right ! null)queue.add(curNode.right);}return list.stream().mapToInt(Integer::intValue).toArray();}}class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int value) {this.val value;this.left null;this.right null;}Overridepublic String toString() {return val ;} }还有一种办法其实就是利用深度优先搜索的思想解决这个似乎有点玄妙这里明明是要广度优先搜索怎么还利用起深度优先搜索呢其实是这样的这里按照深度优先搜索我们只是把搜到的数据打上标签这个标签就是它的层次也叫深度每个深度的节点我们保存到同样深度的map映射里。最后我们遍历map得到所有按照层次组织的节点这样就是从上到下从左到右打印二叉树节点。  深度优先搜索  package com.xxx.tutorial;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class TreeNodeTraversal {private static MapInteger, ListInteger map new HashMap();private static int max -1;private static int cnt 0;public static void main(String[] args) {TreeNode node0 new TreeNode(3);TreeNode node1 new TreeNode(9);TreeNode node2 new TreeNode(20);TreeNode node3 new TreeNode(15);TreeNode node4 new TreeNode(7);node0.left node1;node0.right node2;node2.left node3;node2.right node4;int[] res traversal(node0);for (int i 0; i res.length; i) {System.out.print(res[i] );}System.out.println();}public static int[] traversal(TreeNode root) {dfs(root, 0);int[] ans new int[cnt];for (int i 0, idx 0; i max; i) {for (int x : map.get(i))ans[idx] x;}return ans;}public static void dfs(TreeNode node, int depth) {if (node null) return;max Math.max(max, depth);cnt;dfs(node.left, depth 1);ListInteger list map.getOrDefault(depth, new ArrayList());list.add(node.val);map.put(depth, list);dfs(node.right, depth 1);}public static class TreeNode {int val;TreeNode left;TreeNode right;public TreeNode(int value) {this.val value;this.left null;this.right null;}} }这里通过递归调用我们能遍历完所有节点并按照深度层次保存各自深度的节点。  这个思路很巧妙它利用深度层次来映射对应的节点最后我们遍历map映射得到所有节点他们的顺序正好是从上到下从左到右。 剑指offer打印二叉树还有另一个题目就是按照层次打印二叉树就是[[3],[9,20],[15,7]]相信经过上面的深度优先搜索大家也许有一些想法这个代码或许简单改造一下就可以了。
http://www.dnsts.com.cn/news/35750.html

相关文章:

  • 成品超市网站西丽网站设计
  • 自助建设网站软件建站服务的网络公司有哪些
  • 威海哪里可以做网站火山开发软件可以开发网站吗
  • 新闻客户端网站开发网站做描本好处
  • mini主机做网站服务器网站为什么做等保
  • 可以做外链网站微信公众官网登录入口
  • 青岛万维网站设计成都设计公司排行榜
  • 做软件跟做网站哪个难wordpress 模板速度
  • 微网站做下载链接做抽纸行业网站
  • 大美工设计网站官网广东专业网站建设公司
  • 网页设计与网站制作知识框架什么是建站
  • 怎么做网站搜索引擎吕梁营销型网站建设费用
  • 网站开发济南招聘最新楼盘价格走势图
  • 设计方案格式模板范文成都自动seo
  • 连云港网站建设东莞商城网站建设价格
  • 查询系统网站模板aspnet网站开发pdf
  • 在郑州网站建设汕头市住房和城乡建设局
  • 微信做淘宝客网站天元建设集团有限公司2021年产值
  • 免费推广公司的网站做网站咋赚钱
  • 下载免费网站模板下载活动推广方案策划
  • 百度收录网站排名wordpress外贸同步插件
  • 2008服务器网站免费的黄冈网站有哪些下载软件
  • 自字网站建设教程怎样查看网站备案号
  • 做门户网站需要什么淄博易宝网站建设
  • 网站建设优化两千字闵行区核酸检测点
  • 海口手机建站模板湖南网站建设kaodezhu
  • 瓯海住房与城乡建设局网站flash 3d 网站源码
  • 南京网站优化公司营销培训课程2022
  • 正规的扬中网站建设厦门市住宅建设办公室网站
  • 南宁市网站维护与推广公司2345网址导航开创中国