226. Invert Binary Tree
Invert a binary tree.
4 / \ 2 7 / \ / \ 1 3 6 9to
4
/ \
7 2
/ \ / \
/ \
7 2
/ \ / \
9 6 3 1
#coding=utf-8
class TreeNode(object):
def __init__(self,x):
self.val=x
self.left=None
self.right=None
我都不敢相信,我这么垃圾的能力,竟然一次通过.....开心
class Solution(object):
def invertTree(self,root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
if not root:return
else:
if root.right or root.left:
termTree=root.left
root.left=root.right
root.right=termTree
self.invertTree(root.left)
self.invertTree(root.right)
return root
#别人的solutions,写的比较简洁,但是原理都懂了
def invertTree(self, root):
if root:
root.left, root.right = self.invertTree(root.right), self.invertTree(root.left)
return root
root.left, root.right = self.invertTree(root.right), self.invertTree(root.left)
return root
Maybe make it four lines for better readability:
def invertTree(self, root):
if root:
invert = self.invertTree
root.left, root.right = invert(root.right), invert(root.left)
return root
if root:
invert = self.invertTree
root.left, root.right = invert(root.right), invert(root.left)
return root
PS:看来刷一些题还是很有好处的,虽然不是立即见效,但还是循序渐进的