首页 > 其他分享 >BM26 求二叉树的层序遍历

BM26 求二叉树的层序遍历

时间:2023-01-01 22:12:54浏览次数:43  
标签:node 层序 res BM26 queue length let 二叉树 push

题目描述

image

思路分析

外部使用一个容器来存储,借助一个临时的栈来存储每一层的节点,之后根绝临时栈不为空的条件来遍历每一层,并将结果存到容器中

代码参考

const levelOrder = function (root) {
  //二叉树的层序遍历
  let res = [], queue = []
  if (root === null) {
    return res
  }
  queue.push(root)
  while (queue.length !== 0) {
    // 记录当前层级节点数
    let length = queue.length
    //存放每一层的节点 
    let curLevel = []
    for (let i = 0; i < length; i++) {
      let node = queue.shift()
      curLevel.push(node.val)
      // 存放当前层下一层的节点
      node.left && queue.push(node.left)
      node.right && queue.push(node.right)
    }
    //把每一层的结果放到结果数组
    res.push(curLevel)
  }
  return res
}

标签:node,层序,res,BM26,queue,length,let,二叉树,push
From: https://www.cnblogs.com/zx529/p/17018952.html

相关文章

  • 二叉树的先中后序遍历
    二叉树:每个节点最多只有两个字节点JS中通常用Object来模拟二叉树(val:1,left:0,right:0)constbt={val:1,left:{......
  • leetcode-563. 二叉树的坡度
    563.二叉树的坡度-力扣(Leetcode)坡度的计算需要4个数左子树所有节点的和右子树所有结点的和左子树的坡度右子树的坡度左子树与右子树节点差值的绝对值为当前节点......
  • 三化二叉树trick
    三选一化二叉套路概述这个套路是针对某一建模题的。三选一其实可以扩展到N选一,模型具体如下。发现某种状态可以扩展出\(N\)个状态,且有一个状态相较而言比较特殊(如其他......
  • leetcode-543. 二叉树的直径
    543.二叉树的直径-力扣(Leetcode)深度优先遍历,每个节点的直径等于左子树的最大深度加上右子树的最大深度,取一个最大值即可/***Definitionforabinarytreenode.......
  • 层序遍历
    二叉树的层次遍历从左到右访问所有节点逐层地,从左到右访问所有节点,返回其层次遍历结果:[[3],[9,20],[15,7]]实现思路:创建一个数组存放结果,一个队列存放......
  • 四、数据结构第四节——二叉树(知识点)
    四、数据结构第四节——二叉树今天开启美妙的二叉树的学习~~~“树”是我们第一次见到的”非线性”的数据结构。二叉树:是树上每个节点都只有两个子节点的简单的树。知......
  • 二叉树
    二叉树的概念树,有三个比较相似的概念:高度,深度,层;它们的定义为:节点的高度:节点到叶子节点的最长路径节点的深度:根节点到这个节点所经历的边的个数节点的层数:节点的深度+......
  • 关于二叉树深度 和 高度的问题
    根节点的高度=最大深度(后序遍历)104.二叉树的最大深度publicintmaxDepth(TreeNoderoot){returngetDepth(root);}publicintgetDepth(TreeNo......
  • 学完层序,真的直接一口气,不用任何递归,搞定10道题
    102.二叉树的层序遍历classSolution{publicList<List<Integer>>levelOrder(TreeNoderoot){Queue<TreeNode>queue=newLinkedList<>();L......
  • 二叉树
    二叉树的定义二叉树是一种有序树,它是节点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵分别称为左子树和右子树的、互不相交的二叉树组成。它的特点是每个节......