Skip to content

Commit 63a59dd

Browse files
committed
Add libh_Binary Tree Level Order Traversal-leetcode102 and 103
1 parent 9c8e491 commit 63a59dd

File tree

2 files changed

+84
-0
lines changed

2 files changed

+84
-0
lines changed

2018.12.05-leetcode102/李碧涵.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
### [102. Binary Tree Level Order Traversal](https://leetcode.com/problems/binary-tree-level-order-traversal/description/)
2+
3+
**题目描述**
4+
> 层次遍历二叉树。逐层,从左向右。
5+
6+
**例子**
7+
8+
9+
**思想**
10+
辅助队列
11+
12+
**解法**
13+
```python
14+
# Definition for a binary tree node.
15+
# class TreeNode(object):
16+
# def __init__(self, x):
17+
# self.val = x
18+
# self.left = None
19+
# self.right = None
20+
21+
class Solution(object):
22+
def levelOrder(self, root):
23+
"""
24+
:type root: TreeNode
25+
:rtype: List[List[int]]
26+
"""
27+
res = []
28+
queue = [root]
29+
while queue and root:
30+
row = []
31+
for _ in range(len(queue)):
32+
node = queue.pop(0)
33+
if node.left:
34+
queue.append(node.left)
35+
if node.right:
36+
queue.append(node.right)
37+
row.append(node.val)
38+
res.append(row)
39+
return res
40+
```

2018.12.06-leetcode103/李碧涵.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#### [103. Binary Tree Zigzag Level Order Traversal](https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/)
2+
**题目描述**
3+
> zigzag锯齿形层次遍历二叉树。(逐层,从左向右;然后下一层是从右向左)
4+
5+
**例子**
6+
7+
8+
**思想**
9+
辅助队列 + Flag翻转标志
10+
11+
**解法**
12+
```python
13+
# Definition for a binary tree node.
14+
# class TreeNode(object):
15+
# def __init__(self, x):
16+
# self.val = x
17+
# self.left = None
18+
# self.right = None
19+
20+
class Solution(object):
21+
def zigzagLevelOrder(self, root):
22+
"""
23+
:type root: TreeNode
24+
:rtype: List[List[int]]
25+
"""
26+
Flag = 1
27+
res = []
28+
queue = [root]
29+
while queue and root:
30+
row = []
31+
for _ in range(len(queue)):
32+
node = queue.pop(0)
33+
if node.left:
34+
queue.append(node.left)
35+
if node.right:
36+
queue.append(node.right)
37+
row.append(node.val)
38+
if Flag == 1:
39+
res.append(row)
40+
else:
41+
res.append(row[::-1])
42+
Flag *= (-1)
43+
return res
44+
```

0 commit comments

Comments
 (0)