题目链接:https://leetcode-cn.com/problems/invert-binary-tree/
解题思路
我们可以递归把左子树变成右子树,右子树变为左子树
代码
class Solution {
public TreeNode invertTree(TreeNode root) {
if(root == null) //为空直接返回
return root;
TreeNode l = invertTree(root.right); //新左子树,递归右子树
TreeNode r = invertTree(root.left); //新右子树,递归左子树
root.left = l; //连接
root.right = r; //连接
return root;
}
}
复杂度分析
- 时间复杂度:O(n)
- 空间复杂度:O(n)