一、題目描述
給定一個二叉樹丧鸯,返回其按層次遍歷的節(jié)點(diǎn)值蛤铜。 (即逐層地,從左到右訪問所有節(jié)點(diǎn))丛肢。
示例:
例如:
給定二叉樹: [3,9,20,null,null,15,7]
二围肥、代碼實(shí)現(xiàn)
思路:用隊(duì)列實(shí)現(xiàn)
- root為空,則返回空表蜂怎;
- root不為空穆刻,記下此時隊(duì)列中節(jié)點(diǎn)個數(shù)temp,temp個節(jié)點(diǎn)出隊(duì)列的同時杠步,記錄節(jié)點(diǎn)值氢伟,并把節(jié)點(diǎn)的左右子節(jié)點(diǎn)加入隊(duì)列;
# 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