038翻转二叉树
2026/5/13 20:58:08 网站建设 项目流程

翻转二叉树

题目链接: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)。

总结

  • 本题的本质还是二叉树的深度优先搜索(递归)。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询