[LeetCode] Recover Binary Search Tree
来源:互联网 发布:linux exit是什么意思 编辑:程序博客网 时间:2024/05/01 19:35
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 constant space solution?
confused what "{1,#,2,3}"
means? > read more on how binary tree is serialized on OJ.
思路:利用中序遍历,因为正常情况下,中序遍历能得到递增序列,所以找出第一个左边比右边大的节点s1和最后一个右边比左边小的节点s2即可。
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode *pre = NULL,*s1 = NULL,*s2 = NULL; void inorder(TreeNode *root){ if(root -> left) inorder(root -> left); if(pre != NULL && pre -> val > root -> val){ if(s1 == NULL){ s1 = pre; s2 = root; }else s2 = root; } pre = root; if(root -> right) inorder(root -> right); } void recoverTree(TreeNode *root) { inorder(root); int tmp = s1 -> val; s1 -> val = s2 -> val; s2 -> val = tmp; }};
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
- Adroid中广播接收者的使用,实现强制下线功能
- Openwrt
- 计算机网络术语详解
- msysgit安装与配置
- iOS开发_统计xcode代码行数
- [LeetCode] Recover Binary Search Tree
- 2014年总结
- python 学习笔记(二十)
- JTA-Java Transaction API
- 滑动、滚动
- SharedPreferences(2)
- 我理解中的cocos2dx之Ref
- iOS生成UUID
- A plus B II