我的代码:
class Solution:
"""
@param root: a TreeNode, the root of the binary tree
@return: nothing
"""
def invertBinaryTree(self, root):
if root.left == None and root.right == None:
return
if root.left != None and root.right == None://这里一定要改成elif,因为左右子节点交换后会变成下面的if的情况,导致再一次交换,所以要改成elif
root.right = root.left
root.left = None
self.invertBinaryTree(root.right)
if root.left == None and root.right != None://包括这里
root.left = root.right
root.right = None
self.invertBinaryTree(root.left)
else:
temp = root.left
root.left = root.right
root.right = temp
self.invertBinaryTree(root.left)
self.invertBinaryTree(root.right)
修改后代码:
class Solution:
"""
@param root: a TreeNode, the root of the binary tree
@return: nothing
"""
def invertBinaryTree(self, root):
if root.left == None and root.right == None:
return
elif root.left != None and root.right == None:
root.right = root.left
root.left = None
self.invertBinaryTree(root.right)
elif root.left == None and root.right != None:
root.left = root.right
root.right = None
self.invertBinaryTree(root.left)
else:
temp = root.left
root.left = root.right
root.right = temp
self.invertBinaryTree(root.left)
self.invertBinaryTree(root.right)