leetcode---二叉树的层序遍历

eelq

关注

阅读 71

2022-02-25

在这里插入图片描述

import queue
class Solution:
    def levelOrder(self, root: TreeNode) -> List[List[int]]:
        if not root:
            return []
        
        q = queue.Queue()
        q.put(root)  # 先把根节点入队
        ans = []
        while not q.empty():
            layer_node_num = q.qsize()  # 当前队列中的节点数量为这一层的节点数
            layer_node = []             # 用于保存这一层的节点
            while layer_node_num > 0:
                curr_node = q.get()     # 队首节点出队
                layer_node.append(curr_node.val)
                layer_node_num -= 1
                if curr_node.left:
                    q.put(curr_node.left)
                if curr_node.right:
                    q.put(curr_node.right)
                
            ans.append(layer_node)
        return ans

精彩评论(0)

0 0 举报