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

求二叉树的层序遍历

https://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3?tpId=295&tqId=644&ru=/exam/oj&qru=/ta/format-top101/question-ranking&sourceUrl=%2Fexam%2Foj

# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param root TreeNode类 
# @return int整型二维数组
#
class Solution:
    def levelOrder(self , root: TreeNode) -> list[list[int]]:
        # write code here
        '''设置队列queue,并设置length设置每次队列新加的一层元素的长度
        ,当新加的元素全都出队以后,这时需要将结果统计一次放入到res2这个最终的结果中'''

        queue=[]
        
        res2 =[]
        if  not root:
            return None
        queue.append(root)
        while queue:
            res =[]
            length = len(queue)
            '''打个比方,比如刚开始添加了一个元素,入对,然后只需要Pop一次,就统计结果'''
            #第二次,假如队列有2个元素,那么需要pop2次,再统计res中的结果
            while length>0:
                root= queue.pop(0)
                length-=1

                if root.left:
                    queue.append(root.left)
                if root.right:
                    queue.append(root.right)
                res.append(root.val)
            res2.append(res)
        return res2

全部评论

相关推荐

玉无心❤️:发照片干啥 发简历啊
点赞 评论 收藏
分享
完美的潜伏者许愿简历通过:我上表jd,请求封我做后端大将军的事,北京有消息了:竟然不许!!! 他们一定是看我没有实习,这才故意驳回我的请求!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务