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)。

总结

  • 本题的本质还是二叉树的深度优先搜索(递归)。
相关推荐
啦啦啦啦啦zzzz10 小时前
数据结构:二叉树的线索化
数据结构·算法
如竟没有火炬11 小时前
寻找峰值——二分
java·开发语言·数据结构·python·算法·散列表
he___H13 小时前
B、B+树和vue部分知识
数据结构·vue.js·b树
hai31524754314 小时前
结构化编程:AI工业化编程的探索
数据结构·自然语言处理·硬件工程·动态规划·集成学习
2401_8685347814 小时前
2026年5月系统分析
数据结构·python·tornado
袋鼠云数栈15 小时前
数栈 V7.0 多模态数据智能平台:打造 AI-Ready 的企业数据底座
大数据·数据结构·数据库·人工智能·数据治理·多模态
迈巴赫车主16 小时前
优先队列(PriorityQueue)
数据结构·算法
z2005093016 小时前
今日算法(回溯全排列)
c++·算法·leetcode
Boom_Shu16 小时前
构造函数程序
数据结构·算法
Lucky_ldy16 小时前
数据结构从入门到精通:链表
数据结构·链表