LeetCode: 102. 二叉树的层次遍历(Python)

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

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

    3
   / \
  9  20
    /  \
   15   7

返回其层次遍历结果:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:广度优先搜索Demo

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def levelOrder(self, root: TreeNode) -> List[List[int]]:
        result=[]
        if not root:
            return result
        queue=[root]
        while queue:
            # 下层结点
            next_queue = list()
            # 层值
            layer = list()
            for node in queue:
                if node.left:
                    next_queue.append(node.left)
                if node.right:
                    next_queue.append(node.right)
                if node.val or node.val==0:
                    layer.append(node.val)
            result.append(layer)
            queue = next_queue
        return result 
            
            

LeetCode: 102. 二叉树的层次遍历(Python)_第1张图片

你可能感兴趣的:(LeetCode入门)