美文网首页
102. Binary Tree Level Order Tra

102. Binary Tree Level Order Tra

作者: 羲牧 | 来源:发表于2020-06-14 14:24 被阅读0次

    解法一. 使用队列.
    根节点入队列,然后根节点出队列,输出根节点,其左右子节点分别入栈。
    需要注意的是,此题要一层一层的输出子数组,注意控制一下循环条件就可以了

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    class Solution:
        def levelOrder(self, root: TreeNode) -> List[List[int]]:
            result = []
            if root is None:
                return result
            
            q = [root]
            while len(q):
                level = []
                length = len(q)
                for i in range(length):
                    p = q.pop(0)
                    level.append(p.val)
                    if p.left:
                        q.append(p.left)
                    if p.right:
                        q.append(p.right)
                result.append(level)
            return result
                    
                
            
            
    

    解法二 递归法

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    class Solution:
        def levelOrder(self, root: TreeNode) -> List[List[int]]:
            result = []
            if root is None:
                return result
            self.levelhelper(root, 0, result)
            return result
            
            
        def levelhelper(self, p, level, result):
            #当level等于数组的长度时,需要新申请一层用于存储
            if level == len(result):
                result.append([])
            if p:
                result[level].append(p.val)
            else:
                return
            if p.left:
                self.levelhelper(p.left, level+1, result)
            if p.right:
                self.levelhelper(p.right, level+1, result)
                
                   
            
    

    相关文章

      网友评论

          本文标题:102. Binary Tree Level Order Tra

          本文链接:https://www.haomeiwen.com/subject/orvxxktx.html