二叉树 04. 层序遍历 BFS

题目:给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)  中等

层序遍历其实就是广度优先搜索 BFS

如:[1,2,3,4,5,6]  >> [[1],[2,3],[4,5],[6]]

方法:队列  时间复杂度O(N)  空间复杂度O(N)

 

def levelOrder(root):
        """
        :type root: TreeNode
        :rtype: List[List[int]]
        """
        if root is None:
            return []

        queue = []
        queue.append(root)
        list1 = []
        while queue != []:
            size = len(queue)
            sub_list = []
            for i in range(size):
                cur = queue.pop(0)
                sub_list.append(cur.val)
                if cur.left:
                    queue.append(cur.left)
                if cur.right:
                    queue.append(cur.right)
            list1.append(sub_list)
        return list1

 

posted @ 2022-07-14 22:19  Liang-ml  阅读(21)  评论(0)    收藏  举报