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

南宁良庆网站建设wordpress ie

南宁良庆网站建设,wordpress ie,phpcms二级栏目文章列表调用网站最新文章的方法,wordpress文章无法使用【算法系列-二叉树】层序遍历 文章目录 【算法系列-二叉树】层序遍历1. 算法分析#x1f6f8;2. 相似题型#x1f3af;2.1 二叉树的层序遍历II(LeetCode 107)2.2 二叉树的右视图(LeetCode 199)2.3 二叉树的层平均值(LeetCode 637)2.4 N叉树的层序遍历(LeetCode 429)2.5 在每个…【算法系列-二叉树】层序遍历 文章目录 【算法系列-二叉树】层序遍历1. 算法分析2. 相似题型2.1 二叉树的层序遍历II(LeetCode 107)2.2 二叉树的右视图(LeetCode 199)2.3 二叉树的层平均值(LeetCode 637)2.4 N叉树的层序遍历(LeetCode 429)2.5 在每个树行中找最大值(LeetCode 515)2.6 填充每个节点的下一个右侧节点指针(LeetCode 116)2.7 二叉树的最大深度(LeetCode 104)2.8 二叉树的最小深度(LeetCode 111) 1. 算法分析 二叉树的层序遍历就是对树进行广度优先搜索一层一层的对树的节点进行遍历 【题目链接】102. 二叉树的层序遍历 - 力扣LeetCode 在这里我们通过队列来辅助实现二叉树的层序遍历关键在于寻找到判断当前节点正在哪一层且这一层的节点是否遍历完的条件。 解题过程 定义一个size这个size等于当前队列的长度大小 开始先将根节点加入队列形成第一层 此时size 1再将队列中的节点弹出将该节点的左右节点加入队列(非空)同时size - 1 重复上述过程直到size 0时表示当前层数的节点已经遍历完进入下一层直到队列为空返回结果 代码示例 class Solution {public ListListInteger levelOrder(TreeNode root) {ListListInteger ret new ArrayList();if (root null) {return ret;}QueueTreeNode queue new LinkedList();queue.offer(root);while (!queue.isEmpty()) {ListInteger list new ArrayList();int size queue.size();while (size 0) {TreeNode cur queue.poll();list.add(cur.val);if (cur.left ! null) {queue.offer(cur.left);}if (cur.right ! null) {queue.offer(cur.right);}size--;}ret.add(list);}return ret;} }下面提供一些与层序遍历解法相似的类型题: 2. 相似题型 2.1 二叉树的层序遍历II(LeetCode 107) 【题目链接】107. 二叉树的层序遍历 II - 力扣LeetCode 代码示例 class Solution {public ListListInteger levelOrderBottom(TreeNode root) {ListListInteger ret new ArrayList();if (root null) {return ret;}QueueTreeNode queue new LinkedList();queue.offer(root);while (!queue.isEmpty()) {ListInteger list new ArrayList();int size queue.size();while (size 0) {TreeNode cur queue.poll();list.add(cur.val);if (cur.left ! null) {queue.offer(cur.left);}if (cur.right ! null) {queue.offer(cur.right);}size--;}ret.add(0, list);}return ret;} }2.2 二叉树的右视图(LeetCode 199) 【题目链接】199. 二叉树的右视图 - 力扣LeetCode 解题思路与使用队列的层序遍历相同需要注意的是要找到能够在右视图看到的节点这个节点可以是左节点也可以是右节点但它一定是每一层遍历的最右边节点对此在遍历到队列中size为0的前一个节点时将这个节点的值加入返回数组即可 代码示例 class Solution {public ListInteger rightSideView(TreeNode root) {ListInteger ret new ArrayList();if (root null) {return ret;}QueueTreeNode queue new LinkedList();queue.offer(root);while (!queue.isEmpty()) {int size queue.size();while (size 1) {queueOfferNode(queue);size--;}TreeNode node queueOfferNode(queue);ret.add(node.val);}return ret;}TreeNode queueOfferNode(QueueTreeNode queue) {TreeNode cur queue.poll();if (cur.left ! null) {queue.offer(cur.left);}if (cur.right ! null) {queue.offer(cur.right);}return cur;} }2.3 二叉树的层平均值(LeetCode 637) 【题目链接】637. 二叉树的层平均值 - 力扣LeetCode 代码示例 class Solution {public ListDouble averageOfLevels(TreeNode root) {ListDouble ret new ArrayList();if (root null) {return ret;}QueueTreeNode queue new LinkedList();queue.offer(root);while (!queue.isEmpty()) {int size queue.size();int num size;double sum 0;while (size 0) {TreeNode cur queue.poll();sum cur.val;if (cur.left ! null) {queue.offer(cur.left);}if (cur.right ! null) {queue.offer(cur.right);}size--;}ret.add(sum / num);}return ret;} }2.4 N叉树的层序遍历(LeetCode 429) 【题目链接】429. N 叉树的层序遍历 - 力扣LeetCode 代码示例 /* // Definition for a Node. class Node {public int val;public ListNode children;public Node() {}public Node(int _val) {val _val;}public Node(int _val, ListNode _children) {val _val;children _children;} }; */class Solution {public ListListInteger levelOrder(Node root) {ListListInteger ret new ArrayList();if (root null) {return ret;}QueueNode queue new LinkedList();queue.offer(root);while (!queue.isEmpty()) {ListInteger list new ArrayList();int size queue.size();while (size 0) {Node cur queue.poll();list.add(cur.val);ListNode children cur.children;for (Node node : children) {if (node ! null) {queue.offer(node);}}size--;}ret.add(list);}return ret;} }2.5 在每个树行中找最大值(LeetCode 515) 【题目链接】515. 在每个树行中找最大值 - 力扣LeetCode 代码示例 class Solution {public ListInteger largestValues(TreeNode root) {ListInteger ret new ArrayList();if (root null) {return ret;}QueueTreeNode queue new LinkedList();queue.offer(root);while (!queue.isEmpty()) {int size queue.size();int max Integer.MIN_VALUE;while (size 0) {TreeNode cur queue.poll();if (cur.val max) {max cur.val;}if (cur.left ! null) {queue.offer(cur.left);}if (cur.right ! null) {queue.offer(cur.right);}size--;}ret.add(max);}return ret;} }2.6 填充每个节点的下一个右侧节点指针(LeetCode 116) 【题目链接】116. 填充每个节点的下一个右侧节点指针 - 力扣LeetCode 代码示例 /* // Definition for a Node. class Node {public int val;public Node left;public Node right;public Node next;public Node() {}public Node(int _val) {val _val;}public Node(int _val, Node _left, Node _right, Node _next) {val _val;left _left;right _right;next _next;} }; */class Solution {public Node connect(Node root) {if (root null) {return root;}QueueNode queue new LinkedList();queue.offer(root);while (!queue.isEmpty()) {int size queue.size();while (size-- 0) {Node cur1 queue.poll();Node cur2 size 0 ? null : queue.peek();cur1.next cur2;if (cur1.left ! null) {queue.offer(cur1.left);}if (cur1.right ! null) {queue.offer(cur1.right);}}}return root;} }2.7 二叉树的最大深度(LeetCode 104) 【题目链接】104. 二叉树的最大深度 - 力扣LeetCode 代码示例 class Solution {public int maxDepth(TreeNode root) {int ret 0;if (root null) {return ret;}QueueTreeNode queue new LinkedList();queue.offer(root);while (!queue.isEmpty()) {ret;int size queue.size();while (size 0) {TreeNode cur queue.poll();if (cur.left ! null) {queue.offer(cur.left);}if (cur.right ! null) {queue.offer(cur.right);}size--;}}return ret;} }2.8 二叉树的最小深度(LeetCode 111) 【题目链接】111. 二叉树的最小深度 - 力扣LeetCode 代码示例 class Solution {public int minDepth(TreeNode root) {int ret 0;if (root null) {return ret;}QueueTreeNode queue new LinkedList();queue.offer(root);while (!queue.isEmpty()) {ret;int size queue.size();while (size 0) {TreeNode cur queue.poll();if (cur.left null cur.right null) {return ret;}if (cur.left ! null) {queue.offer(cur.left);}if (cur.right ! null) {queue.offer(cur.right);}size--;}}return ret;} }以上便是对二叉树层序遍历问题的介绍了后续还会继续分享其它算法系列内容如果这些内容对大家有帮助的话请给一个三连关注吧( •̀ ω •́ )✧( •̀ ω •́ )✧✨
http://www.hkea.cn/news/14430782/

相关文章:

  • 怎么做推广赚佣金郑州做网站优化电话
  • 电话销售做网站认证黄浦手机网站建设
  • 食品网站建设策划方案工程建设是指
  • asp加dw做网站画江湖网站开发文档
  • 进空间的网站吗wordpress斜杠自动成-
  • 南宁建站价格地方网站怎么做
  • 武陟做网站游戏开发用什么语言
  • 某景区网站建设策划书金融行业
  • 织梦后台怎么做网站地图域名和服务器多少钱
  • 开游戏公司需要多少钱建站优化公司
  • 厦门网站建设教学企业免费网站建设哪里比较好
  • 定制营销的例子有哪些广东seo点击排名软件哪家好
  • jfinal网站开发零基础学网站建设
  • 同学会网站建设方案创意营销
  • 聊城网站建设有限公司网站推广策划评估指标有哪些
  • 郴州竞价网站建设方案国内WordPress分享插件
  • 二合一收款码免费制作网站郑州自建网站
  • 撰写网站建设规划设计任务书网站如何增加增删查改怎么做
  • 一步步教会你怎么做网站怎么建网站手机版
  • 图库网站源码下载网站建设考级
  • 湛江建设培训学校网站自媒体平台排名前十
  • 导游网站如何建设的全国建筑四库一平台
  • 番禺开发网站费用企业如何建设自己的网站
  • 无锡网站设计厂家安卓app制作入门教程
  • 我本沉默传奇新开网站建设厅证书查询网站
  • 网站显示内容不显示不出来免费发布黄页广告网站
  • 项目负责人质量建设厅官方网站kratos的WordPress
  • wordpress多人聊天室站长网seo综合查询工具
  • 三里屯做网站的公司广州高端品牌网站建设哪家公司好
  • 如何设立邮箱和网站福州商城网站建设