Skip to content

Commit f9a6117

Browse files
authored
Update 107._binary_tree_level_order_traversal_ii.md
1 parent f9aacfc commit f9a6117

File tree

1 file changed

+55
-42
lines changed

1 file changed

+55
-42
lines changed
Lines changed: 55 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,61 @@
1-
###107. Binary Tree Level Order Traversal II
2-
3-
题目:
4-
5-
<https://leetcode.com/problems/binary-tree-level-order-traversal-ii/>
6-
7-
8-
难度:
9-
10-
Easy
11-
12-
13-
用102 的算法作弊
14-
15-
16-
```
17-
# Definition for a binary tree node.
18-
# class TreeNode(object):
19-
# def __init__(self, x):
20-
# self.val = x
21-
# self.left = None
22-
# self.right = None
23-
24-
class Solution(object):
1+
# 107. Binary Tree Level Order Traversal II
2+
3+
**<font color=red>难度: Easy</font>**
4+
5+
## 刷题内容
6+
7+
> 原题连接
8+
9+
* https://leetcode.com/problems/binary-tree-level-order-traversal-ii/description/
10+
11+
> 内容描述
12+
13+
```
14+
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).
15+
16+
For example:
17+
Given binary tree [3,9,20,null,null,15,7],
18+
3
19+
/ \
20+
9 20
21+
/ \
22+
15 7
23+
return its bottom-up level order traversal as:
24+
[
25+
[15,7],
26+
[9,20],
27+
[3]
28+
]
29+
```
30+
31+
## 解题方案
32+
33+
> 思路 1
34+
******- 时间复杂度: O(N)******- 空间复杂度: O(N)******
35+
36+
37+
用102 的算法作弊
38+
39+
40+
```python
41+
class Solution:
2542
def levelOrderBottom(self, root):
2643
"""
2744
:type root: TreeNode
2845
:rtype: List[List[int]]
2946
"""
47+
def dfs(node, level, res):
48+
if not node:
49+
return
50+
if len(res) < level:
51+
res.append([])
52+
res[level-1].append(node.val)
53+
dfs(node.left, level+1, res)
54+
dfs(node.right, level+1, res)
55+
3056
res = []
31-
32-
if root == None: return []
33-
34-
curLevel = [root]
35-
while curLevel:
36-
nextLevel = []
37-
tmpRes = []
38-
for node in curLevel:
39-
tmpRes.append(node.val)
40-
if node.left: nextLevel.append(node.left)
41-
if node.right: nextLevel.append(node.right)
42-
res.append(tmpRes)
43-
curLevel = nextLevel
44-
res.reverse()
45-
return res
46-
```
47-
48-
57+
dfs(root, 1, res)
58+
return res[::-1]
59+
```
60+
61+

0 commit comments

Comments
 (0)