leetcode226. Invert Binary Tree
题目描述:
解题思路:
1.如果非空且根节点存在,则根节点不变,左右子树交换位置
2.否则返回根节点
python实现:
# 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 root :
root.left,root.right=self.invertTree(root.right),self.invertTree(root.left)
return root
#法二:借助栈来实现
def invertTree(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
stack=[root]
while stack:
node=stack.pop()
if node:
node.left,node.right=node.right,node.left
stack += node.left,node.right
return root