Skip to content

Commit 3b1ab25

Browse files
committed
leetcode 102
python
1 parent ff6591e commit 3b1ab25

File tree

3 files changed

+60
-0
lines changed

3 files changed

+60
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ Personal Practice Set - Doing One a Day (sometimes) in a Variety of Languages (M
7373
| 88 | Easy | [Merge Sorted Array](leetcode/88-Easy-Merge-Sorted-Array/problem.md) | [Python](leetcode/88-Easy-Merge-Sorted-Array/answer.py) |
7474
| 100| Easy | [Same Tree](leetcode/100-Easy-Same-Tree/problem.md) | [Python](leetcode/100-Easy-Same-Tree/answer.py) |
7575
| 101| Easy | [Symmetric Tree](leetcode/101-Easy-Symmetric-Tree/problem.md) | [Python](leetcode/101-Easy-Symmetric-Tree/answer.py) |
76+
| 102| Medium | [Binary Tree Level Order Traversal](leetcode/102-Medium-Binary-Tree-Level-Order-Traversal/problem.md) | [Python](leetcode/102-Medium-Binary-Tree-Level-Order-Traversal/answer.py)|
7677
| 104| Easy | [Maximum Depth of Binary Tree](leetcode/104-Easy-Maximum-Depth-Of-Binary-Tree/problem.md) | [Python](leetcode/104-Easy-Maximum-Depth-Of-Binary-Tree/answer.py)|
7778
| 105| Medium | [Construct Binary Tree from Preorder and Inorder Traversal](leetcode/105-Medium-Construct-Binary-Tree-From-Preorder-And-Inorder-Traversal/problem.md) | [Python](leetcode/105-Medium-Construct-Binary-Tree-From-Preorder-And-Inorder-Traversal/answer.py)|
7879
| 106| Medium | [Construct Binary Tree from Inorder and Postorder Traversal](leetcode/106-Medium-Construct-Binary-Tree-From-Inorder-And-Postorder-Traversal/problem.md) | [Python](leetcode/106-Medium-Construct-Binary-Tree-From-Inorder-And-Postorder-Traversal/answer.py)|
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#!/usr/bin/python3
2+
3+
#------------------------------------------------------------------------------
4+
5+
# Definition for a binary tree node.
6+
# class TreeNode:
7+
# def __init__(self, x):
8+
# self.val = x
9+
# self.left = None
10+
# self.right = None
11+
12+
class Solution:
13+
def levelOrder(self, root):
14+
"""
15+
:type root: TreeNode
16+
:rtype: List[List[int]]
17+
"""
18+
if not root:
19+
return []
20+
stack = [(root, 0)]
21+
result = []
22+
23+
while stack:
24+
(node, level) = stack.pop(0)
25+
if level == len(result):
26+
result.append([])
27+
result[level].append(node.val)
28+
if node.left: stack.append((node.left, level+1))
29+
if node.right: stack.append((node.right, level+1))
30+
31+
return result
32+
33+
#------------------------------------------------------------------------------
34+
#Testing
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Problem 102: Binary Tree Level Order Traversal
2+
3+
#### Difficulty: Medium
4+
5+
#### Problem
6+
7+
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
8+
9+
#### Example
10+
11+
<pre>
12+
Given binary tree [3,9,20,null,null,15,7],
13+
3
14+
/ \
15+
9 20
16+
/ \
17+
15 7
18+
return its level order traversal as:
19+
[
20+
[3],
21+
[9,20],
22+
[15,7]
23+
]
24+
</pre>
25+

0 commit comments

Comments
 (0)