# 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 is None:
return []
stacks = []
queue = [root]
while queue:
stack = []
queue_size = len(queue)
# 明确当前层的结点数n后,依次取出前n个结点(即当前层的这n个结点),同时,将下一层的结点也保存到queue中
for i in range(queue_size):
node = queue.pop(0)
stack.append(node.val)
left = node.left
right = node.right
if left:
queue.append(left)
if right:
queue.append(right)
stacks.append(stack)
return stacks
102. 二叉树的层次遍历
最新推荐文章于 2020-08-13 20:16:26 发布