题目
翻转一棵二叉树。
示例:
输入:
4
/ \
2 7
/ \ / \
1 3 6 9
输出:
4
/ \
7 2
/ \ / \
9 6 3 1
思路
思路简单,两种方法,递归非递归
上代码
代码
//递归方式
def invertTree(self, root: TreeNode) -> TreeNode:
if root == None:
return root
temp = root.right
root.right = self.invertTree(root.left)
root.left = self.invertTree(temp)
return root
//非递归方式
def invertTree(self, root: TreeNode) -> TreeNode:
trees = []
trees.append(root)
while trees:
node = trees.pop()
if not node:
continue
tmp = node.left
node.left = node.right
node.right = tmp
trees.append(node.left)
trees.append(node.right)
return root
以上
欢迎大家关注我的公众号