力扣题目——107. 二叉树的层序遍历 II
注:本文的代码实现使用的是 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相关推荐
- 力扣题目——102. 二叉树的层序遍历
注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给你一个二叉树,请你返回其按 层序遍历 得到的节点值. (即逐层地,从左到右 ...
- leetcode系列-107.二叉树的层序遍历II
题目描述: 给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 . (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 示例 1: 输入:root = [3,9,20,null, ...
- Leetcode 107.二叉树的层序遍历 II (每日一题 20210628 同类型题)
给定一个二叉树,返回其节点值自底向上的层序遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如: 给定二叉树 [3,9,20,null,null,15,7],3/ \9 20/ \1 ...
- 107. 二叉树的层序遍历 II and 102. 二叉树的层序遍历 023(BFS模板题打两道)
一:题目 二:上码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* Tre ...
- 49 -算法 -LeetCode 107 107. 二叉树的层序遍历 II 栈队列vector
// 最好别 直接 !left 或者 !right 来判断是否为空 判断的是地址 很尴尬 // 直接 left != null rigth != null //queue front pop push ...
- 力扣题目——103. 二叉树的锯齿形层序遍历
注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个二叉树,返回其节点值的锯齿形层序遍历.(即先从左往右,再从右往左进行 ...
- 力扣题目——637. 二叉树的层平均值
注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组. 示例: 输入: ...
- 算法--- 二叉树的层序遍历 II
题目 二叉树的层序遍历 II 给定一个二叉树,返回其节点值自底向上的层序遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如: 给定二叉树 [3,9,20,null,null,15, ...
- 二叉树的层序遍历 II
二叉树的层序遍历 II 给定一个二叉树,返回其节点值自底向上的层序遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7] ...
最新文章
- java print快捷键_Java的ArrayList集合使用---唐代诗人斗地主!!!
- Asp.net在IE10、IE11下事件丢失经验总结
- 求二叉树节点个数、叶子节点、节点层次与宽度
- 【Java】异常和IO在Gourmet咖啡系统中的应用
- java随机输出_用java随机输出汉字
- vue音乐播放器demo,主要是模仿慕课音乐播放器教程制作的一个小demo
- Python CV2图像鼠标选择任意区域截图
- 电脑网速检测在哪里可以找到
- c++字符串中元音字母转置
- Mybatis中Mapper标签总结大全
- 利用 SysRq 键排除和诊断系统故障
- 2023 最新 抖音AI换脸表情包小程序变现玩法项目
- 计算机专业设计(论文)内容及要求,简述计算机专业毕业论文的撰写要求
- appium手机APP自动化定位元素
- 紫薇圣人的程序员人生-第3回[原创IT小说]
- 美国漫画历程的阳光面与阴暗面 | 经济学人全球早报精选
- 笔记本未启用无线服务器,WiFi无线网络提示未启用DHCP无法上网的解决方法
- 制作canal-adapter的docker镜像
- Plants vs. Zombies【二分】
- 河南自考本科计算机相关专业,速看,河南自考本科计算机及应用专业介绍
热门文章
- datatable java排序,Java实现DataTable的过滤,排序,聚合功能
- jupyter中怎么把图形在一个单独的窗口显示_QT绘图中的坐标概念
- VS2012下基于Glut OpenGL GL_POLYGON_STIPPLE示例程序:
- JS 实现两表格里的数据来回 转移
- asm数据文件迁移(os–asm)
- Android 开发之 fill_parent、wrap_content和match_parent的区别
- 起点文学网ViewState解码分析后的结果研究
- 开发者必备Mysql命令
- Task/Parallel实现异步多线程
- Theano at a Glance