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

昆明网站建设8888168网址浏览器

昆明网站建设8888168,网址浏览器,如何链接自己做的网站,苏州首页排名关键词优化102. 二叉树的层序遍历 题目链接 题目描述: 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 难点: 思路: 需要借用一个辅助数据结构即队列来实现…

102. 二叉树的层序遍历

题目链接

题目描述:
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
在这里插入图片描述

难点:

思路:
需要借用一个辅助数据结构即队列来实现,队列先进先出,符合一层一层遍历的逻辑,而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。

而这种层序遍历方式就是图论中的广度优先遍历BFS

时间复杂度:O()
空间复杂度:O()

//层序遍历
class Solution {List<List<Integer>> resList = new ArrayList<>(); //全局变量保存结果public List<List<Integer>> levelOrder(TreeNode root) {levelorder(root);return resList;}public void levelorder(TreeNode root) {if (root == null) return;Queue<TreeNode> que = new LinkedList<>();que.add(root);while (!que.isEmpty()) {int len = que.size(); //记录当前层的结点数List<Integer> itemList = new ArrayList<>();for (int i = 0; i < len; i++) {TreeNode cur = que.poll();itemList.add(cur.val);if (cur.left != null) que.offer(cur.left);if (cur.right != null) que.offer(cur.right);}resList.add(itemList);}}
}//DFS-递归法
class Solution {List<List<Integer>> resList = new ArrayList<>();public List<List<Integer>> levelOrder(TreeNode root) {int depth = 0;order(root, depth);return resList;}public void order(TreeNode root, int depth) {if (root == null) return;if (resList.size() == depth) resList.add(new ArrayList<>()); //仅当第一次遍历当该层(结果集的列表数等于当前深度)//创捷该层的结果队列resList.get(depth).add(root.val);order(root.left, depth+1);order(root.right, depth+1);}
}

时长:
20min

收获:
List是有get()和set()方法的!

层序遍历递归法

学会二叉树的层序遍历,可以一口气打完以下十题:
102.二叉树的层序遍历
107.二叉树的层次遍历II
199.二叉树的右视图
637.二叉树的层平均值
429.N叉树的层序遍历
515.在每个树行中找最大值
116.填充每个节点的下一个右侧节点指针
117.填充每个节点的下一个右侧节点指针II
104.二叉树的最大深度
111.二叉树的最小深度


226. 翻转二叉树

题目链接

题目描述:
翻转一棵二叉树。
在这里插入图片描述

难点:

思路:
递归法,采用后序遍历或者先序遍历都可以

时间复杂度:O()
空间复杂度:O()

class Solution {public TreeNode invertTree(TreeNode root) {if (root == null) return root;invertTree(root.left);invertTree(root.right);swap(root);return root;}public void swap(TreeNode root) {TreeNode tmp = root.left;root.left = root.right;root.right = tmp;}
}

另外还有迭代法、层序遍历法

时长:
10min

收获:
交换要拿到root,交换其左右节点


101. 对称二叉树

题目链接

题目描述:
给定一个二叉树,检查它是否是镜像对称的。
在这里插入图片描述

难点:

思路:
要判断对称,那就要以中轴线为划分,比较左右两边对应位置的内侧结点和外侧节点
先判断结点是否都存在
再判断结点的值是否相同

时间复杂度:O()
空间复杂度:O()

public boolean isSymmetric(TreeNode root) {if (root == null) return true;return compare(root.left, root.right);}private boolean compare(TreeNode left, TreeNode right) {if(left == null && right == null) {return true;}else if (left != null && right == null) {return false;}else if (left == null && right != null) {return false;}else if (left.val != right.val) {return false;}return compare(left.left, right.right) && compare(left.right, right.left);}

时长:
10min

收获:
仔细完整地考虑不同情况

http://www.yayakq.cn/news/671994/

相关文章:

  • 怎样在网站上做外贸企业网络安全设计方案
  • 樟木头镇网站建设养老网站建设 中企动力
  • 印度网站后缀wordpress 结合qq
  • 买手表网站网站建设如何定价
  • 2018网站开发最流行的语言WordPress里面自定义功能
  • 怎么优化网站排名石河建设技校网站
  • 东莞营销型手机网站建设深圳网站建设网页设计
  • 房地产交易网站网站建设外包兼职
  • 刚察县公司网站建设河北省建设工程造价管理协会网站
  • php网站开发软件免费网站引导页
  • 长春做网站新格公司建视频网站
  • 网站建设要准备些什么微信开发小程序公司
  • 广州邮局网站广东电子商务网站建设价格
  • 益阳网站建设公司有哪些金牛区建设审批网站
  • 襄阳作风建设年活动网站网站建设类织梦模板
  • 网站怎么做第三方支付接口那里做网站最好
  • 大连手机自适应网站建设维护微信小程序商家入驻收费
  • 网站建设信息发布平台网站设计 价格
  • 零食店网站建设计划书南宁外包seo服务
  • 企业网站模板建站wordpress help主题
  • 网站互动怎么做建设手机网站大概要多少钱
  • ppt模板网站下载徐州模板建站定制网站
  • 遂宁门户网站建设先进工作单位北京网站设计制作哪个公司好
  • 科创纵横 网站建设wordpress cron
  • 东莞营销网站建设哪个平台好网络技术服务公司
  • 衡阳建网站北京二次感染最新消息
  • 手机 pc网站开发价格工业互联网平台建设及推广指南
  • 做网站视频一般上传到哪里网站内如何@
  • 科讯cms制作网站完整教程佛山网站推广seo
  • 华意网站建设网络公司怎么样站长平台工具