0
点赞
收藏
分享

微信扫一扫

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

eelq 2022-02-25 阅读 71

在这里插入图片描述

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 条评论