python--leetcode226. Invert Binary Tree

来源:互联网 发布:tcp通信安卓app源码 编辑:程序博客网 时间:2024/05/16 11:55

Invert a binary tree.

     4   /   \  2     7 / \   / \1   3 6   9
to
     4   /   \  7     2 / \   / \9   6 3   1
Trivia:
This problem was inspired by this original tweet by Max Howell:
Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.

题目意思就是给你一个二叉树,让你去反转它,把左右子树反转。

解题思路:递归解决。

# Definition for a binary tree node.class TreeNode(object):    def __init__(self, x):        self.val = x        self.left = None        self.right = Noneclass Solution(object):    def invertTree(self, root):        """        :type root: TreeNode        :rtype: TreeNode        """        if root:          def invert(root):            temp=root.left            root.left=root.right            root.right=temp            if root.left:              invert(root.left)            if root.right:              invert(root.right)          invert(root)        return root

更快捷解法:

def invertTree(self, root):    if root:        root.left, root.right = self.invertTree(root.right), self.invertTree(root.left)        return root