翻转一棵二叉树。
示例:
输入:
4
/ \
2 7
/ \ / \
1 3 6 9
输出:
4
/ \
7 2
/ \ / \
9 6 3 1
解题思路:
遇到问题,想想能不能把问题缩小,缩小到最小。
那咱们这个题的最小算法是什么?
一个
4
/ \
7 2
这样的二叉树的翻转。
这题就很简单了。node.left 和 node.right 互相调换即可。
然后递归
代码:
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def invertTree(self, root: TreeNode) -> TreeNode:
def fun(node):
if node:
left = node.left
right = node.right
node.left = right
node.right = left
fun(node.left)
fun(node.right)
fun(root)
return root