找工作刷题记录_018二叉树的层次遍历

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

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

    3
   / \
  9  20
    /  \
   15   7

返回其层次遍历结果:

[
  [3],
  [9,20],
  [15,7]
]
# 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]]:
        if not root: return[]
        
        result = []
        queue = collections.deque()
        queue.append(root)
        
        #visited = set(root)
        
        while queue:
            level_size = len(queue)
            current_level = []
            
            for _ in range(level_size):
                node = queue.popleft()
                current_level.append(node.val)
                if node.left:queue.append(node.left)
                if node.right:queue.append(node.right)
                    
            result.append(current_level)
        return result
        

需要再理解。。。

猜你喜欢

转载自blog.csdn.net/qq_23565519/article/details/88764394