释义
将二叉树从根节点翻转,将左节点变为右节点。
输入
4
/ \
2 7
/ \ / \
1 3 6 9
输出
4
/ \
7 2
/ \ / \
9 6 3 1
解法
使用递归的方法,如果输入二叉树为空树则返回空树,如不是就将左右子树调换。
class Solution {
public TreeNode invertTree(TreeNode root) {
if(root == null){
return root;
}
TreeNode left = invertTree(root.left);
TreeNode right = invertTree(root.right);
root.left = right;
root.right = left;
return root;
}
}
复杂度分析
时间复杂度为O(n), n为二叉树中节点个数,因为为了翻转二叉树,二叉树中的每个节点都需要遍历。
空间复杂度为O(n)。