leetcode_c++:树: Recover Binary Search Tree(099)
2016-08-24 17:24
477 查看
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?
Subscribe to see which companies asked this question
//有一个BST有两个节点不小心互换了,恢复这颗树
时间:O(n)
空间:o(n)
http://fisherlei.blogspot.kr/2012/12/leetcode-recover-binary-search-tree.html
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?
Subscribe to see which companies asked this question
//有一个BST有两个节点不小心互换了,恢复这颗树
算法
中序遍历,找出节点,互换时间:O(n)
空间:o(n)
class Solution { public: TreeNode *p,*q; TreeNode *prev; void recoverTree(TreeNode *root) { p=q=prev=NULL; inorder(root); swap(p->val,q->val); } void inorder(TreeNode *root) { if(root->left)inorder(root->left); if(prev!=NULL&&(prev->val>root->val)) { if(p==NULL)p=prev; q=root; } prev=root; if(root->right)inorder(root->right); } };
算法
O(1)的解法http://fisherlei.blogspot.kr/2012/12/leetcode-recover-binary-search-tree.html
这里写代码片
相关文章推荐
- leetcode 099 —— Recover Binary Search Tree
- Java for LeetCode 099 Recover Binary Search Tree
- LeetCode 099 Recover Binary Search Tree
- [LeetCode]题解(python):099-Recover Binary Search Tree
- LeetCode099 Recover Binary Search Tree
- Recover Binary Search Tree leetcode c++
- LeetCode: Recover Binary Search Tree [099]
- 【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 99: 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