038翻转二叉树

翻转二叉树

题目链接:https://leetcode.cn/problems/invert-binary-tree/description/?envType=study-plan-v2\&envId=top-100-liked

我的解答:

复制代码
public TreeNode invertTree(TreeNode root) {
    if(root==null){
        return null;
    }
    TreeNode temp=root.left;
    root.left=root.right;
    root.right=temp;
    invertTree(root.left);
    invertTree(root.right);
    return root;
}

分析:代码的时间复杂度为O(n),空间复杂度为O(n)。

看了官方题解后的解答:

复制代码
//官方题解的思路与我的解题思路相同
public TreeNode invertTree(TreeNode root) {
    if(root==null){
        return null;
    }
    TreeNode left = invertTree(root.left);
    TreeNode right = invertTree(root.right);
    root.left=right;
    root.right=left;
    return root;
}

分析:代码的时间复杂度为O(n),空间复杂度为O(n),使用的空间由递归栈的深度决定,它等于当前节点在二叉树中的高度。在平均情况下,二叉树的高度与节点个数为对数关系,即 O(logn)。而在最坏情况下,树形成链状,空间复杂度为 O(n)。

总结

  • 本题的本质还是二叉树的深度优先搜索(递归)。
相关推荐
星轨初途9 小时前
LeetCode 热题 100——day2 字母异位词分组
c++·算法·leetcode
Livia要学习9 小时前
Python2和Python3字典底层原理
数据结构
青梅橘子皮9 小时前
STL---map/set... “家族“详解(从使用到底层)(1)
数据结构·算法
雪碧聊技术12 小时前
力扣 72. 编辑距离——动态规划经典例题
算法·leetcode·动态规划
木井巳12 小时前
【DFS解决floodfill算法】岛屿的最大面积
java·算法·leetcode·深度优先
yyds_yyd_1008612 小时前
877. 石子游戏(2026.08.02)& 486. 预测赢家(2026.08.01)
c++·leetcode
灵枢时代14 小时前
小程序在生鲜配送行业,如何设计夜间预约和次日达的订单处理流程?
数据结构·人工智能·小程序
一条大祥脚14 小时前
ABC468 扫描线|贡献法|二阶差分|线段树优化DP
数据结构·算法
普通攻击往后拉1 天前
Leetcode 206. 反转链表
算法·leetcode·链表
橘子汽水1681 天前
Leetcode 230,98:二叉搜索树中第K小的元素,验证二叉搜索树
算法·leetcode·职场和发展