##方法一:显式中序遍历
###思路与算法
对于二叉搜索树进行中序遍历,得到的值序列是递增有序的;对于两个错误的节点等价于在这个值序列中交换了两个值,破坏了值序列的递增性。那么序列中就会出现两个位置不满足或者一个位置不满足递增的两种情况
###解决方案
- 中序递归遍历整个树,当 pre 节点值大于当前节点,记录这两个节点。
- 判断逆序对节点数是2个还是4个,如果是2两个,交换即可,如果是4个,则交换第1个和第4个。
代码
1 | class Solution: |
##方法一:显式中序遍历
###思路与算法
对于二叉搜索树进行中序遍历,得到的值序列是递增有序的;对于两个错误的节点等价于在这个值序列中交换了两个值,破坏了值序列的递增性。那么序列中就会出现两个位置不满足或者一个位置不满足递增的两种情况
###解决方案
1 | class Solution: |
文章作者:imlch
发布时间:2020年08月15日 - 18时18分
最后更新:2020年09月19日 - 19时44分
原始链接:http://blog.imlch.cn/2020/08/15/LeetCode99/
许可协议: "署名-非商用-相同方式共享 3.0" 转载请保留原文链接及作者。