首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js 实现层遍历

= [] // 初始化当前层级 let countNum = queue.length // 当前层级的节点数 while(countNum--){ // 遍历当前层级的节点数...push(node.val) // 推入每层的节点值 node.left && queue.push(node.left) // 将当前层级的节点的左右节点推入栈中,供下一层级遍历...node.right && queue.push(node.right)// 将当前层级的节点的左右节点推入栈中,供下一层级遍历 } count...++ // 层级+1 } return res }; 基本逻辑: 层遍历使用的时广度优先遍历,使用队列存取,先进先出,与广度优先遍历不同的是,广度优先遍历返回一个一维数组,不分层级...,层遍历分层级,返回多维数组,在每次遍历的过程中,把整层节点都处理完之后,再处理下一层 1.

3.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Js遍历对象总结

    Js遍历对象总结 Js遍历对象的方法主要有for in、Object.keys()、Object.getOwnPropertyNames()、Reflect.ownKeys()、Object.getOwnPropertySymbols...for in for in语句以任意顺序迭代对象的可枚举属性,包括原型链上的可枚举属性,不包括Symbol属性。...*/ Object.keys Object.keys()方法会返回一个由一个指定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用for...in循环遍历对象时返回的顺序一致。...类似的,Object.entries()方法返回一个指定对象自身可枚举属性的键值对数组,Object.values()方法返回一个指定对象自身的所有可枚举属性值的数组。...11 b 1111 a 111 d 1111111 */ Object.getOwnPropertySymbols Object.getOwnPropertySymbols()方法返回一个指定对象自身的所有

    6.8K31

    二叉树的先遍历遍历 后序遍历遍历

    也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树 二叉树的遍历遍历 :先遍历根节点,再遍历左节点,最后遍历右节点 中遍历 :先遍历左节点,再遍历根节点,最后遍历右节点...后序遍历 :先遍历左节点,再遍历右节点,最后遍历根节点 层遍历 : 自上而下,自左至右逐层访问树的结点的过程就是层遍历 遍历方法的实现 先建立一棵树 用代码建立以上树 class Node...: //先遍历 public static void preOrder(Node root){ if (root == null){ return;...//层遍历 public void levelOrder(TreeNode root){ //不能使用递归 //可以借助一个队列来完成...= null){ queue.offer(cur.right); } } } (层遍历无法使用递归的方法) 补充(非递归实现先

    1K20

    js二叉树层遍历

    前言博主最近在刷leetcode,做到二叉树套题的时候发现很多题的解题思路都是基于二叉树的层遍历来完成的,因此写下这篇文章,记录一下二叉树层遍历这件"神器"在实战的运用。...leetcode 102.二叉树的层遍历图片二叉树的层遍历与传统的前序、中、后序遍历都有一些区别,他是按层级、从左到右、从上到下进行遍历的,因此当我在遍历当前层节点的时候,肯定需要记录当前层所有节点的...因此需要借助一个辅助数据结构——队列,队列先进后出,符合层遍历的顺序性,其实此题就是队列 + 广度优先遍历 的一道结合题。...你真的会发现,理解了层遍历后,解决这些关联题,会如鱼得水一般简单102.二叉树的层遍历107.二叉树的层次遍历II199.二叉树的右视图637.二叉树的层平均值429.N叉树的前序遍历515.在每个树行中找最大值...116.填充每个节点的下一个右侧节点指针117.填充每个节点的下一个右侧节点指针II104.二叉树的最大深度111.二叉树的最小深度leetcode 107.二叉树的层遍历II图片此题与102.二叉树的层遍历极其相似

    62030
    领券