LeetCode: Recover Binary Search Tree
来源:互联网 发布:Oracle 序列的值sql 编辑:程序博客网 时间:2024/06/08 17:17
思路:中序遍历搜索树,用一个变量 pre 存储当前节点 root 在中序序列的前一个节点(第一个节点的前一个为NULL),只要pre的值大于root的值,则记录这个pre,这是其中一个出错的位置,同样的过程记录好两个位置后,进行位置调换即可。
code:
class Solution { TreeNode *pre = NULL; TreeNode *node1 = NULL,*node2 = NULL;public: void preOrderTree(TreeNode *root){ if(root == NULL) return; preOrderTree(root->left); if(pre != NULL && pre->val > root->val){ node2 = root; if(node1 == NULL) node1 = pre; } pre = root; preOrderTree(root->right); } void recoverTree(TreeNode *root) { preOrderTree(root); if(node1 != NULL && node2 != NULL){ int i = node1->val; node1->val = node2->val; node2->val = i; } }};
0 0
- LeetCode: Recover Binary Search Tree
- LeetCode: Recover Binary Search Tree
- [Leetcode] Recover Binary Search Tree
- [LeetCode] Recover Binary Search Tree
- [Leetcode] Recover Binary Search Tree
- [leetcode] recover binary search tree
- LeetCode -- Recover Binary Search Tree
- [LeetCode]Recover Binary Search Tree
- [LeetCode] Recover Binary Search Tree
- LeetCode:Recover Binary Search Tree
- [Leetcode]Recover Binary Search Tree
- Leetcode: Recover Binary Search Tree
- LeetCode-Recover Binary Search Tree
- [leetcode] Recover Binary Search Tree
- [LeetCode] Recover Binary Search Tree
- 【Leetcode】Recover Binary Search Tree
- Leetcode Recover Binary Search Tree
- LeetCode | Recover Binary Search Tree
- 消费者-生产者问题---进程的实现信号量
- ssh
- [九度1512 剑指offer7] 用两个栈实现队列
- Android + kernel USB host 如何判断插入的设备是高速还是低速的设备
- 如何修改WordPress安装路径
- LeetCode: Recover Binary Search Tree
- ftok key值冲突
- Android SDK下载和更新失败的解决方法
- ExecutorSevice & FutureTask
- 这一年的八月三十一号
- 过河
- 【Python】爬图片,Py2exe打包成EXE,并用inno setup生成安装文件
- 最近S2SH框架整合和简单测试 Struts2-2.3.14+Spring-4.0.6+Hibernate-4.3.6
- TableLayout 实现动态新增一行,与之前行宽度一致