注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路。

描述

给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)


示例:

二叉树:[3,9,20,null,null,15,7],

    3/ \9  20/  \15   7

返回其自底向上的层序遍历为:

[[15,7],[9,20],[3]
]

解题思路

这道题只需要在层序遍历法的结果的基础上,将结果中的各个元素(由每一层节点的数值组合成的数组)使用reverse函数进行反转即可。

点击链接即可查看二叉树层序遍历算法的详解 力扣题目——102. 二叉树的层序遍历

层序遍历代码

var levelOrder = function(root) {// 用于存放最后结果的数组let result = []// 初始化队列,若 root 为 null,则队列直接为[], 不进行 while 循环,直接返回resultlet queue = root ? [root] : []// 只要队列中存在元素,则遍历,若不存在元素,说明树已经遍历完毕,退出while(queue.length !== 0){// 存放每一层元素let temp = []// 遍历 len 个元素,即遍历这一层的所有元素for(let i = 0, len = queue.length; i < len; i++){let node = queue.shift()temp.push(node.val)// 只有不为空的时候,才需要将子节点 push 到队列中if(node.left) queue.push(node.left)if(node.right) queue.push(node.right)}result.push(temp)}return result
};

这道题目的代码

var levelOrder = function(root) {// 用于存放最后结果的数组let result = []// 初始化队列,若 root 为 null,则队列直接为[], 不进行 while 循环,直接返回resultlet queue = root ? [root] : []// 只要队列中存在元素,则遍历,若不存在元素,说明树已经遍历完毕,退出while(queue.length !== 0){// 存放每一层元素let temp = []// 遍历 len 个元素,即遍历这一层的所有元素for(let i = 0, len = queue.length; i < len; i++){let node = queue.shift()temp.push(node.val)// 只有不为空的时候,才需要将子节点 push 到队列中if(node.left) queue.push(node.left)if(node.right) queue.push(node.right)}result.push(temp)}return result.reverse()
};

力扣题目——107. 二叉树的层序遍历 II相关推荐

  1. 力扣题目——102. 二叉树的层序遍历

    注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给你一个二叉树,请你返回其按 层序遍历 得到的节点值. (即逐层地,从左到右 ...

  2. leetcode系列-107.二叉树的层序遍历II

    题目描述: 给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 . (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 示例 1: 输入:root = [3,9,20,null, ...

  3. Leetcode 107.二叉树的层序遍历 II (每日一题 20210628 同类型题)

    给定一个二叉树,返回其节点值自底向上的层序遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如: 给定二叉树 [3,9,20,null,null,15,7],3/ \9 20/ \1 ...

  4. 107. 二叉树的层序遍历 II and 102. 二叉树的层序遍历 023(BFS模板题打两道)

    一:题目 二:上码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* Tre ...

  5. 49 -算法 -LeetCode 107 107. 二叉树的层序遍历 II 栈队列vector

    // 最好别 直接 !left 或者 !right 来判断是否为空 判断的是地址 很尴尬 // 直接 left != null rigth != null //queue front pop push ...

  6. 力扣题目——103. 二叉树的锯齿形层序遍历

    注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个二叉树,返回其节点值的锯齿形层序遍历.(即先从左往右,再从右往左进行 ...

  7. 力扣题目——637. 二叉树的层平均值

    注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组. 示例: 输入: ...

  8. 算法--- 二叉树的层序遍历 II

    题目 二叉树的层序遍历 II 给定一个二叉树,返回其节点值自底向上的层序遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如: 给定二叉树 [3,9,20,null,null,15, ...

  9. 二叉树的层序遍历 II

    二叉树的层序遍历 II 给定一个二叉树,返回其节点值自底向上的层序遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7] ...

最新文章

  1. java print快捷键_Java的ArrayList集合使用---唐代诗人斗地主!!!
  2. Asp.net在IE10、IE11下事件丢失经验总结
  3. 求二叉树节点个数、叶子节点、节点层次与宽度
  4. 【Java】异常和IO在Gourmet咖啡系统中的应用
  5. java随机输出_用java随机输出汉字
  6. vue音乐播放器demo,主要是模仿慕课音乐播放器教程制作的一个小demo
  7. Python CV2图像鼠标选择任意区域截图
  8. 电脑网速检测在哪里可以找到
  9. c++字符串中元音字母转置
  10. Mybatis中Mapper标签总结大全
  11. 利用 SysRq 键排除和诊断系统故障
  12. 2023 最新 抖音AI换脸表情包小程序变现玩法项目
  13. 计算机专业设计(论文)内容及要求,简述计算机专业毕业论文的撰写要求
  14. appium手机APP自动化定位元素
  15. 紫薇圣人的程序员人生-第3回[原创IT小说]
  16. 美国漫画历程的阳光面与阴暗面 | 经济学人全球早报精选
  17. 笔记本未启用无线服务器,WiFi无线网络提示未启用DHCP无法上网的解决方法
  18. 制作canal-adapter的docker镜像
  19. Plants vs. Zombies【二分】
  20. 河南自考本科计算机相关专业,速看,河南自考本科计算机及应用专业介绍

热门文章

  1. datatable java排序,Java实现DataTable的过滤,排序,聚合功能
  2. jupyter中怎么把图形在一个单独的窗口显示_QT绘图中的坐标概念
  3. VS2012下基于Glut OpenGL GL_POLYGON_STIPPLE示例程序:
  4. JS 实现两表格里的数据来回 转移
  5. asm数据文件迁移(os–asm)
  6. Android 开发之 fill_parent、wrap_content和match_parent的区别
  7. 起点文学网ViewState解码分析后的结果研究
  8. 开发者必备Mysql命令
  9. Task/Parallel实现异步多线程
  10. Theano at a Glance