美文网首页
[Tree]226. Invert Binary-Tree

[Tree]226. Invert Binary-Tree

作者: 野生小熊猫 | 来源:发表于2020-03-12 14:42 被阅读0次
    • 分类:Tree
    • 时间复杂度: O(n)
    • 空间复杂度: O(n)->O(1)

    226. Invert Binary-Tree

    翻转一棵二叉树。

    示例:

    输入:

    4

    / \

    2 7

    / \ / \

    1 3 6 9

    输出:

    4

    / \

    7 2

    / \ / \

    9 6 3 1

    备注:

    这个问题是受到 Max Howell 的 原问题 启发的 :

    谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。

    来源:力扣(LeetCode)

    链接:https://leetcode-cn.com/problems/invert-binary-tree

    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    代码1:

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution:
    
    
        def invertTree(self, root: TreeNode) -> TreeNode:
    
            # top-down / bottom-up
    
            if root==None:
                return None
    
            self.invertTree(root.left)
            self.invertTree(root.right)
    
            root.right,root.left = root.left,root.right
    
            return root
    

    讨论:

    1.递归思路:左子树invert完成了,右子树也invert完成了之后,swap(left,right)。分解成可执行的小任务。

    相关文章

      网友评论

          本文标题:[Tree]226. Invert Binary-Tree

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