题解 | #求二叉树的层序遍历#

求二叉树的层序遍历

http://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3

class Solution:
    def levelOrder(self , root: TreeNode) -> List[List[int]]:
        # write code here
        current_layer_nodes = [root] if root else []
        ret = []
        # 当当前层不为空列表的时候,说明还没有到底层
        while current_layer_nodes:
            curr_result = []
            next_layer_nodes = []
            # 遍历本层的所有节点(来自于上一层的存储)
            for n in current_layer_nodes:
                curr_result.append(n.val)
                # 存储下一层的节点
                if n.left:
                    next_layer_nodes.append(n.left)
                if n.right:
                    next_layer_nodes.append(n.right)
            # 将当前层的结果存入返回的列表中
            ret.append(curr_result)
            # 重置当前层为下一层,往下走。
            current_layer_nodes = next_layer_nodes
        return ret
全部评论

相关推荐

2024-12-26 13:00
太原理工大学 Java
会飞的猿:简历没啥大问题啊,感觉是缺少了实习经历。多投投先找个中小厂过渡一下吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务