问题描述
翻转一棵二叉树。
示例:
输入:
输出:
解题思路:
使用递归来翻转二叉树
先翻转以root为根的左右子树,即把左子树换到右子树上去,右子树换到左子树上去。然后翻转以左子树为根的二叉树和以右子树为根的二叉树,一直这样递归下去,直到左右子树为空即可。
代码实现
class Solution {
public TreeNode invertTree(TreeNode root) {
if(root!=null) {
//交换左右子树
TreeNode temp;
temp = root.left;
root.left=root.right;
root.right=temp;
//翻转以左右子树为根的二叉树
invertTree(root.left);
invertTree(root.right);
}
return root;
}
}