leetcode【中等】102、二叉树的层序遍历

在这里插入图片描述
思路:BFS
普通BFS得到一个层序遍历的一维列表,稍微改一下,增加一个循环计数遍历每一层即可

# 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 []
        res=[]
        queue=[]
        queue.append(root)
        while queue:
            l=len(queue)#当前层的节点数
            tmp=[]#储存当前层的节点
            for i in range(l):
                i+=1
                node=queue.pop(0)#默认是-1,即最后一个进队的,这里要先进先出
                tmp.append(node.val)
                if node.left :
                    queue.append(node.left)
                if node.right:
                    queue.append(node.right);
            res.append(tmp)
        return res

猜你喜欢

转载自blog.csdn.net/qq_40707462/article/details/113180141