二叉树的层次遍历 II - LeetCode
给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)
例如:
给定二叉树 [3,9,20,null,null,15,7],
返回其自底向上的层次遍历为:
[
[15,7],
[9,20],
[3]
]
解法:
使用递归遍历二叉树框架的基本方法,同时添加 list 、 depth 两个参数实现,depth记录层级,list为结果数组
PHP
/*** Definition for a binary tree node.* class TreeNode {* public $val = null;* public $left = null;* public $right = null;* function __construct($value) { $this->val = $value; }* }*/
class Solution {/*** @param TreeNode $root* @return Integer[][]*/function levelOrderBottom($root){$list = [];$this->recu($root, 0, $list);return array_reverse($list);}function dfs($root, $depth, &$list){if ($root == null) {return;}if (empty($list[$depth])) {$list[$depth] = [];}array_push($list[$depth], $root->val);$this->recu($root->left, $depth + 1, $list);$this->recu($root->right, $depth + 1, $list);}
}
GO
/*** Definition for a binary tree node.* type TreeNode struct {* Val int* Left *TreeNode* Right *TreeNode* }*/
func levelOrderBottom(root *TreeNode) [][]int {var list [][]intdfs(root, 0, &list)for i, j := 0, len(list) - 1; i < j; i, j = i + 1, j - 1 {list[i], list[j] = list[j], list[i]}return list
}func dfs(root *TreeNode, depth int, list *[][]int) {if root == nil {return}if depth == len(*list) {*list = append(*list, []int{root.Val})} else {(*list)[depth] = append((*list)[depth], root.Val)}dfs(root.Left, depth + 1, list)dfs(root.Right, depth + 1, list)
}
二叉树的层次遍历 II - LeetCode相关推荐
- 二叉树层次遍历c语言_每日一道 LeetCode (23):二叉树的层次遍历 II
❝ 每天 3 分钟,走上算法的逆袭之路. ❞ 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub:https://github.com/meteor1993/LeetCode Gi ...
- 【每日一算法】二叉树的层次遍历 II
每日一算法-二叉树的层次遍历 II 题目 给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,n ...
- 二叉树层次遍历c语言_[LeetCode] 107. 二叉树的层次遍历 II
题目链接 : https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/ 题目描述: 给定一个二叉树,返回其节点值自底 ...
- LeetCode 107. 二叉树的层次遍历 II(队列)
1. 题目 给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7],3/ \9 ...
- leetcode 二叉树的层次遍历 II(Binary Tree Level Order Traversal II)
目录 题目描述: 示例: 解法: 题目描述: 给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 示例: 给定二叉树 [3,9,20,null ...
- LeetCode(107)——二叉树的层次遍历 II(JavaScript)
给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 返回其自底向上的层次 ...
- Leetcode 107. 二叉树的层次遍历 II 解题思路及C++实现
解题思路: 使用队列实现二叉树的层序遍历,因为题目中要求每一层的val存储在一个vector中,所以在内循环中,还需要一个队列,用以存储更新每一层的节点. 在最后,需要将得到的res数组逆序. /** ...
- leetcode 107. 二叉树的层次遍历 II(维护两个队列,通过异或运算切换)
题目 思路 一个比较啰嗦的解法 维护两个queue,当前队列节点的孩子,都放进另外一个队列里去. 树每切换一层,就切换一次队列,并且把新队列的值全部存起来. 整体上来看,是自顶向下遍历,最后翻转整个l ...
- 2020_9_6 每日一题 二叉树的层次遍历 II
给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 ...
最新文章
- CUDA学习(七十一)
- WinAPI: GetLocalTime、SetLocalTime、SetSystemTime - 获取与设置系统时间
- 利用node、express初始化项目
- html空格代码_编写灵活、稳定、高质量的CSS代码的规范(推荐收藏)
- Java instanceof 关键字【复习】
- 【三分钟刷一题力扣】移除元素
- leetcode1328. 破坏回文串
- Linux IO控制命令生成
- 【HDOJ 2020.09.29】一些语法水题ByVJ
- 陈纪修老师《数学分析》 第12章:多元函数微分学 笔记
- 在excel上画交换机面板_如何在Excel中创建面板图
- 黑苹果内置硬盘识别成外置硬盘_空间大?安全更重要,麦沃 K35274D硬盘阵列盒使用体验--数据无价...
- Android edittext 属性inputtype
- Lamda表达式-入门篇
- 在电脑上构建自我意识
- vue父子传值与非父子传值
- 计算机内存外存的区别
- 华为路由协议ospf,域内路由,域间路由,域外路由
- 编写python程序、计算账户余额_《计算机科学丛书PYTHON程序设计(原书第2版)/(美])凯.S.霍斯特曼》【价格 目录 书评 正版】_中国图书网...
- EasyRecovery15Mac全面好用的苹果电脑数据恢复app