Recover Binary Search Tree
来源:互联网 发布:最热网络词条 编辑:程序博客网 时间:2024/06/14 00:19
重点
1 inorder
2 怎么用O(1)的space, 必然是用tmp的指针做swap
ref http://www.cnblogs.com/springfor/p/3891390.html
public class Solution { TreeNode first, pre, second; public void recoverTree(TreeNode root) { // ref http://www.cnblogs.com/springfor/p/3891390.html if(root==null) return; int tmp = 0; inorder(root); if(first!=null && second !=null){ tmp = first.val; first.val = second.val; second.val = tmp; } return; } public void inorder(TreeNode root){ if(root==null) return; inorder(root.left); if(pre==null){ pre = root; }else{ if(pre.val>root.val){ // in order, therefore pre>root>root.right... if(first==null) // 因为如果已经找到了first,那么被swap到右面的小的点必然还会小于pre一次 first = pre; second = root; } pre = root; // 往右面移位 } inorder(root.right); }}
0 0
- Recover Binary Search Tree
- Recover Binary Search Tree
- Recover Binary Search Tree
- Recover Binary Search Tree
- Recover Binary Search Tree
- Recover Binary Search Tree
- Recover Binary Search Tree
- Recover Binary Search Tree
- Recover Binary Search Tree
- Recover Binary Search Tree
- Recover Binary Search Tree
- Recover Binary Search Tree
- Recover Binary Search Tree
- Recover Binary Search Tree
- Recover Binary Search Tree
- Recover Binary Search Tree
- Recover Binary Search Tree
- Recover Binary Search Tree
- vim note (1)
- vim note (2)
- vim note(3)
- vim 学习总结
- 130 个你需要了解的 vim 命令
- Recover Binary Search Tree
- Vim 练级攻略
- Merge Intervals
- vim 语法高亮
- Page Visibility实现焦点丢失提醒
- 编程之美链表题目总结
- JavaSE基础视频28_反射机制
- MOOC-Linux内核lab3 调试内核从start_kernel到init进程启动
- LeetCode(191) Number of 1 Bits