Skip to content

Commit 63cecc7

Browse files
107. Binary Tree Level Order Traversal II
Difficulty: Easy 34 / 34 test cases passed. Runtime: 32 ms Memory Usage: 13.9 MB
1 parent e9df85e commit 63cecc7

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
"""
2+
Given a binary tree, return the bottom-up level order traversal of its
3+
nodes' values. (ie, from left to right, level by level from leaf to root).
4+
5+
For example:
6+
Given binary tree [3,9,20,null,null,15,7],
7+
3
8+
/ \
9+
9 20
10+
/ \
11+
15 7
12+
return its bottom-up level order traversal as:
13+
[
14+
[15,7],
15+
[9,20],
16+
[3]
17+
]
18+
"""
19+
#Difficulty: Easy
20+
#34 / 34 test cases passed.
21+
#Runtime: 32 ms
22+
#Memory Usage: 13.9 MB
23+
24+
#Runtime: 32 ms, faster than 90.65% of Python3 online submissions for Binary Tree Level Order Traversal II.
25+
#Memory Usage: 13.9 MB, less than 89.09% of Python3 online submissions for Binary Tree Level Order Traversal II.
26+
27+
# Definition for a binary tree node.
28+
# class TreeNode:
29+
# def __init__(self, val=0, left=None, right=None):
30+
# self.val = val
31+
# self.left = left
32+
# self.right = right
33+
34+
class Solution:
35+
def levelOrderBottom(self, root: TreeNode) -> List[List[int]]:
36+
if not root: return root
37+
queue = [root]
38+
result = []
39+
while queue:
40+
length = len(queue)
41+
level = []
42+
while length:
43+
node = queue.pop(0)
44+
level.append(node.val)
45+
if node.left:
46+
queue.append(node.left)
47+
if node.right:
48+
queue.append(node.right)
49+
length -= 1
50+
result.append(level)
51+
return reversed(result)

0 commit comments

Comments
 (0)