来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/invert-binary-tree/
题目描述
给定一棵二叉树,将它翻转。
题目分析
如上图,本题采用递归实现:从根节点开始遍历,并从叶子节点开始翻转,如果当前节点的左右子树已经翻转,只需要交换两子树即可。
代码实现
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)
好了,今天就到这里,感谢各位看官到这里,不如点个关注吧!