题解 | #求二叉树的层序遍历#

求二叉树的层序遍历

http://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3

step1:采用广度优先搜索的策略进行遍历

step2:借助队列操作,每次把每层的节点加入队列,然后进行遍历进行出队。

from collection import deque
class TreeNode(object):
  def __init__(self, x=0, left=None, right=None):
    self.val = x
    self.left = left
    self.right = right
    
class Solution(object):
  def levelOrder(self, root):
    if not root:
      return []
    result = list()
    queue = deque()
    queue.append(root)
    while(queue):
      size = len(queue)
      level = list()
      for i in range(size):
        node = queue.popleft()
        level.append(node.val)
        if node.left is not None:
          queue.append(node.left)
        if node.right is not None:
          queue.append(node.right)
      result.append(level)
   return result
全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务