一、题目描述
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。
示例:
例如:
给定二叉树: [3,9,20,null,null,15,7]
二、代码实现
思路:用队列实现
- root为空,则返回空表;
- root不为空,记下此时队列中节点个数temp,temp个节点出队列的同时,记录节点值,并把节点的左右子节点加入队列;
# 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[List[int]]
"""
if root == None: return []
queue = [root]
res = []
while len(queue):
layer = []
for i in range(len(queue)):
cur = queue.pop(0)
layer.append(cur.val)
if cur.left: queue.append(cur.left)
if cur.right: queue.append(cur.right)
res.append(layer)
return res
网友评论