leetcode 102 二叉树的层次遍历
z

给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。

例如:
给定二叉树: [3,9,20,null,null,15,7],

        3
   / \
  9  20
    /  \
   15   7

返回其层次遍历结果:

1
2
3
4
5
[
[3],
[9,20],
[15,7]
]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Solution(object):
def levelOrder(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
if not root:
return []
ans = []
queue = []
queue.append(root)
level = 0
while queue:
n = len(queue)
for i in range(n):
t = queue.pop(0)
if level == len(ans):
ans.append([])
ans[level].append(t.val)
if t.left:
queue.append(t.left)
if t.right:
queue.append(t.right)
level += 1
return ans