当前位置 博文首页 > dastu的博客:二叉树的层次遍历(python的递归与非递归)----lee

    dastu的博客:二叉树的层次遍历(python的递归与非递归)----lee

    作者:[db:作者] 时间:2021-09-19 19:28

    非递归

    class Solution:
        def levelOrder(self, root: TreeNode) -> List[List[int]]:
            if not root:
                return []
            res=[]
            q=[root]
            while q:
                temp1=[]
                temp2=[]
                for node in q:
                    temp1.append(node.val)
                    if node.left:
                        temp2.append(node.left)
                    if node.right:
                        temp2.append(node.right)
                res.append(temp1)
                q=temp2
            return res    

    递归

    class Solution:
        def levelOrder(self, root: TreeNode) -> List[List[int]]:
            if not root:
                return []
            levels=[]
            level=0
            def helper(level,node):
                if level==len(levels):
                    levels.append([])
                levels[level].append(node.val)
                if node.left:
                    helper(level+1,node.left)
                if node.right:
                    helper(level+1,node.right)
                return levels
            res=helper(level,root)
            return res

    ?

    cs