102. 二叉树的层次遍历


给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。

例如:
给定二叉树: [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7

返回其层次遍历结果:

[
  [3],
  [9,20],
  [15,7]
]

解题思路:典型的广度优先搜索。使用nodes数组来存储二叉树的层节点,只要nodes数组不为空,则将nodes数组中的节点值封装成列表加入到result中,然后依次将nodes数组中的node的左右孩子节点存储到curr数组中,再使用curr数组来更新nodes。

Python3代码如下:

# 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]]
        """
        result = []
        if not root:
            return result
        nodes = [root]
        while nodes:
            result.append([node.val for node in nodes])
            curr = []
            for node in nodes:
                if node.left:
                    curr.append(node.left)
                if node.right:
                    curr.append(node.right)
            nodes = curr
        return result
        
        

LeetCode-102. 二叉树的层次遍历

相关文章:

  • 2020-05-13
  • 2019-11-05
  • 2021-10-21
  • 2021-03-28
  • 2021-12-14
  • 2021-10-11
  • 2021-04-16
猜你喜欢
  • 2019-02-27
  • 2021-09-21
  • 2021-09-04
  • 2021-12-08
  • 2021-07-11
  • 2021-07-31
  • 2021-04-22
相关资源
相似解决方案