Leetcode---Recover Binary Search Tree

leetcode之recover-binary-search-tree(搜索二叉树BST重建) leetcode之recover-binary-search-tree(搜索二叉树BST重建) 题目 Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its structure. Note: A solution using O(n ) spac... 阅读详情

一个二叉排序树的某两个节点颠倒了为了,去恢复它。


不可思议的是这道题居然被标记为了hard,其实难度远低于其他的hard或medium。


思路:中序遍历,然后看是不是递增的,如果不是,记录下来。注意,可能有一次逆序,也可能有两次,一次的发生在相邻节点。

注意,中序遍历是这样的:

void f(node * root){

if(root==NULL)

return;

f(root->left);

cout<<root->val<<endl;

f(root->right);

}

代码:

    TreeNode *mistake1, *mistake2;;
    TreeNode *pre;

    void recursive_traversal(TreeNode*root) {
        if(root==NULL) {
            return;
        }
        
        recursive_traversal(root->left);
        if(pre!=NULL&&root->val<pre->val) {
            if(mistake1==NULL) {
                mistake1 = pre;
                mistake2 = root;
            } else {
                mistake2 = root;
            }
        }
        pre = root;
        recursive_traversal(root->right);
    }
    void recoverTree(TreeNode *root) {
        recursive_traversal(root);
        if(mistake1!=NULL&&mistake2!=NULL) {
            int tmp = mistake1->val;
            mistake1->val = mistake2->val;
            mistake2->val = tmp;
        }
    }



【LeetCode】Recover Binary Search Tree 解题报告 【题目】 Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its structure. Note: A solution using O(n) space is pretty straight forward. Could 阅读详情

相关推荐

招标信息爬取工具

一个能帮你节省大量时间的实用小工具,我自己用了挺久,分享出来给有需要的朋友

qq_56877290的博客 836

leetcode 99. Recover Binary Search Tree

复习数据结构:二叉查找树 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public cl

独钓寒江雪 343

2026年AI技能进阶指南:从提示词工程到智能体开发实战

提示词工程作为AI时代的基础沟通技能,其核心原理是通过系统化的交互方法论实现与大模型的高效对话。这项技术通过明确性、具体性和可操作性的设计原则,显著提升了AI生成内容的质量和实用性。在工程实践层面,提示词工程已经发展出角色扮演、步骤分解等成熟模式,广泛应用于代码生成、技术方案设计等场景。随着AI智能体开发的兴起,提示词工程进一步演化为定义智能体身份认知和行为规范的系统接口设计,成为构建自主AI系统的关键技术基础。掌握从基础提示词到智能体开发的完整技能栈,能够帮助开发者在AI技术浪潮中保持核心竞争力。

weixin_33139275的博客 333

【Leetcode】Recover Binary Search Tree

题目链接:https://leetcode.com/problems/recover-binary-search-tree/ 题目: Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its structure. Note:

业精于勤,荒于嬉 3329

OpenClaw记忆插件升级实战:从memory-lancedb-pro安装到AgentSkill封装

向量数据库作为现代AI应用的核心基础设施,通过将非结构化数据转换为高维向量并利用相似度检索实现语义理解。其原理基于嵌入模型生成向量表示,结合近似最近邻搜索算法实现高效查询。这项技术为智能体系统提供了长期记忆和上下文感知能力,显著提升了对话连贯性与任务执行效率。在AI智能体开发领域,向量数据库常用于知识库构建、对话历史管理和个性化推荐等场景。本文聚焦OpenClaw框架中memory-lancedb-pro插件的部署实践,针对**插件加载顺序**和**Apache Arrow依赖**两大常见痛点,通过封装成可

weixin_42525482的博客 638

游戏服务器框架之跨服(一)

如今的游戏开发,不搞个跨服玩法都不好意思说在做游戏了(当然,也跟游戏类型有关,一些轻度休闲游戏可以排除在外)。跨服玩法的设计,可以进一步激发玩家追求高战力的虚荣心,也可以汇聚玩家数量,避免单服日活跃低呈现死服现象。 几种常见的跨服玩法拓扑结构 一,不同游戏服的玩家进入中立服务器进行战斗,例如跨服天梯类玩法。 游戏服有很多个节点,中心服务器也有很多节点。只要保证对战的双方同时进入同一个中心服游戏进程即可。 二,若干个游戏服组成一个社区,全部服务器包含多个社区,例如世界服玩法。 三,游戏服A玩

littleschemer的博客 5774

LeetCode99—Recover Binary Search Tree

LeetCode99—Recover Binary Search Tree 恢复排序二叉树

上善若水 1586

华为OD机考真题 新系统 - 小菊的寻宝之旅(Java/Py/C/C++/Js/Go)

华为OD机试真题 新系统【小菊的寻宝之旅】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【小菊的寻宝之旅】多语言题解。

qq_45776114的博客 620

LeetCode力扣之99. Recover Binary Search Tree

Two elements of a binary search tree (BST) are swapped by mistake.Recover the tree without changing its structure.Note:A solution using O(n) space is pretty straight forward. Could you devise a consta...

LeeWei 316

Altium Designer 超详细入门教程

本文是一份Altium Designer新手入门教程,详细介绍了从软件基础到PCB制版的全流程。主要内容包括:软件界面介绍与工程创建方法;原理图设计中的元件放置、电气连线、标注添加等操作;PCB设计的布局布线、铺铜和DRC检查;Gerber和钻孔文件的导出方法。教程还提供了分类整理的实用快捷键表和新手避坑指南,强调原理图编译和DRC检查的重要性。通过本教程,新手可以快速掌握AD基本操作,完成简单电路板的设计与制版文件导出。

学习中...... 821

【嵌入式Linux驱动开发】二十四、Linux I2C 驱动上手尝试

  人的前程关于眼界、关乎格局。   志之所趋,无远弗届,穷山复海不能限也;   志之所向,无坚不入,锐兵精甲不能御也。 一、I2C驱动框架简介   Linux内核将 I2C 驱动分为两部分: ①、 I2C 总线驱动, I2C 总线驱动就是 SOC 的 I2C 控制器驱动,也叫做 I2C 适配器驱动。 ②、 I2C 设备驱动, I2C 设备驱动就是针对具体的 I2C 设备而编写的驱动。 1....

悟已往之不谏 知来者之可追 1068

LeetCode Recover Binary Search Tree

LeetCode Recover Binary Search Tree 解题报告 二叉排序树中有两个节点被交换了,要求把树恢复成二叉排序树。 最简单的办法,中序遍历二叉树生成序列,然后对序列中排序错误的进行调整。最后再进行一次赋值操作。

算法的天空 1万+

【小白深度教程 1.3】使用 BP-Net 深度补全网络,进行 KITTI 稠密点云和图像融合(Depth Completion 实战)

在上一节中,我们展示了如何将从激光雷达获取的稀疏点云(深度)映射到图像。因此这篇论文我们尝试使用 Depth Completion(深度补全)技术,来将稀释的点云深度,补全为稠密深度。

2401_87064292的博客 1199

【LeetCode】99.Recover Binary Search Tree(Hard)解题报告

【LeetCode】99.Recover Binary Search Tree(Hard)解题报告题目地址:https://leetcode.com/problems/recover-binary-search-tree/description/ 题目描述:   Two elements of a binary search tree (BST) are swapped by mistake.

郝春雨的博客 250

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

[leetcode] 99. Recover Binary Search Tree

Description Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its structure. Example 1: Input: [1,3,null,null,2] 1 / 3 \ 2 Output: [3,1...

Learning from the mistakes 318

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

leetcode Recover Binary Search Tree

看到很多写Recover Binary Search Tree这道题的文章都用中序递归来做,我在这里告诉大家,这样做的空间复杂度也是O(n)的,所以虽然他们的答案虽然通过了,但还是没有符合题目的要求,O(1)空间复杂度遍历二叉树的一种算法是morris遍历,详见这里 以下为python的代码 class Solution: def __init__(self): #

大干的学习笔记 1095

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【LeetCode】Recover Binary Search Tree

Recover Binary Search Tree  Total Accepted: 7163 Total Submissions: 31922 My Submissions Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its str

wangzq的专栏 1236

LeetCode 之 Recover Binary Search Tree

原题: Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its structure. Note: A solution using O(n) space is pretty straight forward. Could

zhao123h的专栏 764

LeetCode(99)Recover Binary Search Tree

题目如下: Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its structure. Note: A solution using O(n) space is pretty straight forward. Could yo

BUILD 1382

leetcode笔记:Recover Binary Search Tree

题目的大意是,在二叉排序树中有两个节点被交换了,要求把树恢复成二叉排序树。

liyuefeilong的专栏 1591

[LeetCode]Recover Binary Search Tree

原题链接 一题一句: BST 的内在性质,inorder traversal 里遵循的左小右大关系是突破口,俩个node错位最多只会导致出现俩次左大右小,只需交换第一次的前一个和第二次的后一个,若只有一次错位,则很简单。 经典题目补充:简而言之,java 传参传入的是指针,一担指针地址在方程内被改写,指针便与原来的地址失去关联。 这个题目有一点很有启发性,尤其对

Three_Thousand_World的博客 326

leetcode 99 Recover Binary Search Tree (python)

leetcode 99   Recover Binary Search Tree python

快递小可的博客 1175

LeetCode 99 - Recover Binary Search Tree

LeetCode 99 - Recover Binary Search Tree 题目链接:99. Recover Binary Search Tree 传统 Stack + Iterative 传统的Recursive或者Stack + Iterative解法的空间复杂度都是O(n)。 class Solution { public void recoverTree(TreeNode root) { TreeNode first = null, second = null;

李问渔 311
上一篇: Android Framework层线程设计
下一篇: Leetcode---word Break II
我把葡萄酿成酒
博客等级 码龄12年 275粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值