LeetCodeAnimation/0107-Binary-Tree-Level-Order-Traversal-II/Article/0107-Binary-Tree-Level-Order-Traversal-II.md
程序员吴师兄 fb2465e289 整理部分文件
2020-04-16 20:50:43 +08:00

59 lines
1.5 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# LeetCode 107 号问题二叉树的层次遍历 II
> 本文首发于公众号图解面试算法 [图解 LeetCode ](<https://github.com/MisterBooo/LeetCodeAnimation>) 系列文章之一。
>
> 同步博客https://www.algomooc.com
题目来源于 LeetCode 上第 107 号问题二叉树的层次遍历 II题目难度为 Easy目前通过率为 55.8%
### 题目描述
给定一个二叉树返回其节点值自底向上的层次遍历 即按从叶子节点所在层到根节点所在的层逐层从左向右遍历
例如
给定二叉树 `[3,9,20,null,null,15,7]`,
```
3
/ \
9 20
/ \
15 7
```
返回其自底向上的层次遍历为
```
[
[15,7],
[9,20],
[3]
]
```
### 题目解析
该问题需要用到**队列**解法与上篇[每天一算Binary Tree Level Order Traversal](https://xiaozhuanlan.com/topic/8579460312)类似,区别在于最后存储方式的不同。
- 建立一个 queue
- 先把根节点放进去这时候找根节点的左右两个子节点
- 去掉根节点此时queue里的元素就是下一层的所有节点
- for 循环遍历将结果存到一个一维向量里
- 遍历完之后再把这个一维向量**插入**到二维向量里
- 以此类推可以完成层序遍历
### 动画描述
![](https://blog-1257126549.cos.ap-guangzhou.myqcloud.com/blog/varp8.gif)
### 代码实现
![](https://blog-1257126549.cos.ap-guangzhou.myqcloud.com/blog/9iccc.png)
![](../../Pictures/qrcode.jpg)