LeetCode--226--翻转二叉树

问题描述:

翻转一棵二叉树。

示例:

输入:

     4
   /   \
  2     7
 / \   / \
1   3 6   9

输出:

     4
   /   \
  7     2
 / \   / \
9   6 3   1

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

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

方法1:(递归)

 1 class Solution(object):
 2     def invertTree(self, root):
 3         """
 4         :type root: TreeNode
 5         :rtype: TreeNode
 6         """
 7         if not root:
 8             return
 9         temp = root.left
10         root.left = root.right
11         root.right = temp
12         self.invertTree(root.left)
13         self.invertTree(root.right)
14         return root

there are some different

 1 class Solution(object):
 2     def invertTree(self, root):
 3         """
 4         :type root: TreeNode
 5         :rtype: TreeNode
 6         """
 7         if root == None:
 8             return root
 9         l = self.invertTree(root.left)
10         r = self.invertTree(root.right)
11         root.left = r
12         root.right = l
13         return root

2018-09-19 15:09:02

posted @ 2018-09-19 15:15  Assange  阅读(210)  评论(0编辑  收藏  举报