[LeetCode] 99. Recover Binary Search Tree
来源:互联网 发布:mac怎么同时看两个页面 编辑:程序博客网 时间:2024/05/17 08:06
思路:
依然是in-order遍历. 思路和上一题很相似, 这次要用到三个全局变量, prev记录in-order排序后的前一个结点, first是第一个不正常节点, 它存的值比后面数字大, second是第二个不正常节点, 它的值比前一个值小, 然后全部遍历后调换两个节点的值即可.
void helper(TreeNode* root, TreeNode*& prev, TreeNode*& first, TreeNode*& second) { if (! root) return; helper(root->left, prev, first, second); if (! first && (! prev || root->val <= prev->val)) first = prev; if (first && root->val <= prev->val) second = root; prev = root; helper(root->right, prev, first, second);}void recoverTree(TreeNode* root) { TreeNode* prev = NULL, *first = NULL, *second = NULL; helper(root, prev, first, second); swap(first->val, second->val);}
0 0
- LeetCode 99. Recover Binary Search Tree
- [LeetCode]99.Recover Binary Search Tree
- [Leetcode] 99. Recover Binary Search Tree
- LeetCode --- 99. Recover Binary Search Tree
- [leetcode] 99.Recover Binary Search Tree
- leetcode 99. Recover Binary Search Tree
- Leetcode 99. Recover Binary Search Tree
- LeetCode 99. Recover Binary Search Tree
- LeetCode 99. Recover Binary Search Tree
- Leetcode 99. Recover Binary Search Tree
- LeetCode 99. Recover Binary Search Tree
- [LeetCode] 99. Recover Binary Search Tree
- leetcode-99. Recover Binary Search Tree
- LeetCode 99. Recover Binary Search Tree
- [LeetCode] 99. Recover Binary Search Tree
- leetcode 99. Recover Binary Search Tree
- leetcode 99. Recover Binary Search Tree
- [leetcode]99. Recover Binary Search Tree
- Nginx深入详解之upstream分配方式
- SequenceInputStream序列流的应用
- 78. Subsets
- Java基础之(三十六)Java异常处理<一>
- jdk7 新特性
- [LeetCode] 99. Recover Binary Search Tree
- ffmpeg音视频同步原理
- 图论中的知识点
- Asp.net MVC中的ViewData与ViewBag
- spring--bean的作用域
- Activity的启动模式
- 存储过程
- JVM 优化经验总结
- TYZ 8/22 人品问题