题目
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
例如: 给定二叉树: [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回:[3,9,20,15,7]
解法:BFS
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def levelOrder(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
if not root:
return []
Q = [root]
Res = [root.val]
while len(Q):
Tmp_Q = []
for q in Q:
if q.left:
Tmp_Q.append(q.left)
Res.append(q.left.val)
if q.right:
Tmp_Q.append(q.right)
Res.append(q.right.val)
Q = Tmp_Q
return Res