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

nike网站开发背景及意义百度云搜索引擎入口百度网盘

nike网站开发背景及意义,百度云搜索引擎入口百度网盘,西安最新传染病,购物网站建站规划基础知识(青铜挑战) 了解二叉树的基础知识 实战训练(白银挑战) 简单的层序遍历 基本的层序遍历思路很清晰: 给你一个二叉树根节点,你需要创建一个队列 queue 来遍历节点,一个链表 list 来存储…

基础知识(青铜挑战)

  • 了解二叉树的基础知识

实战训练(白银挑战)

简单的层序遍历
  • 基本的层序遍历思路很清晰:

    • 给你一个二叉树根节点,你需要创建一个队列 queue 来遍历节点,一个链表 list 来存储节点的数据域,即值

    • 首先将根节点入队

    • 队列 queue 出队,将该节点值存入 list,再依次将左右孩子节点入队

    • 重复以上操作,每个节点出对后,都存储该节点值到 list 中,再依次将左右孩子节点入队,直到队列 queue为空

    • 这样得到的数据链表 list 就是按层序遍历的顺序得到的

  • 具体代码如下:(2023/09/09午)
public static List<Integer> simpleLevelOrder(TreeNode root) {if (root == null) {return new ArrayList<Integer>();}
​List<Integer> res = new ArrayList<Integer>();LinkedList<TreeNode> queue = new LinkedList<TreeNode>();//将根节点放入队列中,然后不断遍历队列queue.add(root);//有多少元素执行多少次while (queue.size() > 0) {//获取当前队列的长度,这个长度相当于 当前这一层的节点个数TreeNode t = queue.remove();res.add(t.val);if (t.left != null) {queue.add(t.left);}if (t.right != null) {queue.add(t.right);}}return res;}
层序遍历分层
  • 层序遍历我们做到了,这里添加一个要求:对层序遍历的节点值分层处理,即二叉树每层的节点值分别存放进一个链表 list 中

  • 这个代码怎么写呢?很简单的,按这个思路走:

    • 我们之前层序遍历时,每出队一个节点,都把其值存入 list 链表中,然后入队其孩子节点

    • 在开始出队某一层的节点时,此时队列的节点数,就是二叉树这一层的节点数

    • 那我们根据可以某时刻队列容量来遍历队列,将这层的节点全部出队,并且把节点值存入该层独有的 list 中

    • 当然了,每个节点出队后,要将自己的孩子节点依次入队

    • 这样,当队列为空时,我们得到了各层的节点链表 list,返回一个包含各层 list 的 list 即可

  • 具体代码如下:(2023/09/09晚)
  public static List<List<Integer>> level102Order(TreeNode root) {if (root == null) {return new ArrayList<List<Integer>>();}
​List<List<Integer>> res = new ArrayList<List<Integer>>();LinkedList<TreeNode> queue = new LinkedList<TreeNode>();//将根节点放入队列中,然后不断遍历队列queue.add(root);while (queue.size() > 0) {//获取当前队列的长度,这个长度相当于 当前这一层的节点个数int size = queue.size();ArrayList<Integer> tmp = new ArrayList<Integer>();//将队列中的元素都拿出来(也就是获取这一层的节点),放到临时list中//如果节点的左/右子树不为空,也放入队列中for (int i = 0; i < size; ++i) {TreeNode t = queue.remove();tmp.add(t.val);if (t.left != null) {queue.add(t.left);}if (t.right != null) {queue.add(t.right);}}//将临时list加入最终返回结果中res.add(tmp);}return res;}
自底向上的层序遍历
  • 在前面学习的基础上,实现这个要求就很简单了

  • 在拿到各层节点值的 list 后,按头插的方式,插入链表 list 中,就实现了自底向上的层序遍历了(2023/09/09晚)
  • 具体代码如下:
  
public static List<List<Integer>> levelOrderBottom(TreeNode root) {List<List<Integer>> levelOrder = new LinkedList<List<Integer>>();if (root == null) {return levelOrder;}Queue<TreeNode> queue = new LinkedList<TreeNode>();queue.offer(root);while (!queue.isEmpty()) {List<Integer> level = new ArrayList<Integer>();int size = queue.size();for (int i = 0; i < size; i++) {TreeNode node = queue.poll();level.add(node.val);TreeNode left = node.left, right = node.right;if (left != null) {queue.offer(left);}if (right != null) {queue.offer(right);}}levelOrder.add(0, level);//栈}return levelOrder;}

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

相关文章:

  • 山西建站公司企业网站设计模板免费下载
  • 自定义网站建设团队二级院系网站建设
  • 做免费的视频网站可以赚钱吗校园失物招领网站建设
  • 庄河网站怎么举报做棺材沈阳男科女医生
  • 网站建设产品图片尺寸要求wordpress主题 超级
  • 做一个网站页面多少钱在线网站建设平台
  • 济南网站建设 力推聚搜网络西安SEO网站推广
  • 南京网站销售固镇做网站多少钱
  • 比较大网站建设公司微信小程序怎么申请
  • 太原网站建设团队服装企业官方网站
  • 国外优惠卷网站怎么做上海闸北城市建设有限公司网站
  • 做软件赚钱的网站html转WordPress page
  • 网上商城 网站wordpress如何建站
  • 免费网站模板下载大全下载东莞常平地图全图高清版
  • 怎么查网站是否备案新葡京网址网站建设
  • 网站建设而让百度收入 wordpress
  • 律师免费咨询wordpress 图片优化
  • 贵州省城乡和建设厅网站建设公司网站的内容
  • 南京市建设工程网站做竞价要会做网站吗
  • 如何创建广告网站上海定制app开发公司
  • 广州专业网站制作平台wordpress会员 主题
  • 宣城做网站公司wordpress添加视频集
  • 潍坊尚呈网站建设公司怎么样怎么做网页链接教程
  • 建设银行杭州分行网站游戏制作流程
  • 网站建设实训课指导书网站版式分析做数据新闻的网站有哪些
  • 泰州做网站的公司免费教做面食的网站
  • 网站地图怎样做精准拓客软件哪个好
  • 网站迅速备案网站落地页是什么意思
  • 移动网站跟pc网站域名和空间有什么区别合肥高端网站开发公司
  • 亚马逊站外推广网站怎么做做淘宝客网站好搭建吗