题目链接
Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).
For example:
Given binary tree [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
return its level order traversal as:
[
[3],
[9,20],
[15,7]
]
python代码实现:
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def levelOrder(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
res = []
if root is None:
return res
queue = [root]
while len(queue)!= 0:
res.append([node.val for node in queue])
new_queue = []
for i in queue:
if i.left is not None:
new_queue.append(i.left)
if i.right is not None:
new_queue.append(i.right)
queue = new_queue
return res
解题思路:
此题很明显为二叉树的层序遍历,可以借用队列来实现,唯一不同点就是要把每一层用列表包含起来。