leetcode_c++:树:Recover Binary Search Tree(099)
来源:互联网 发布:linux终端退出命令 编辑:程序博客网 时间:2024/06/07 06:56
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)
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
这里写代码片
0 0
- leetcode_c++:树:Recover Binary Search Tree(099)
- leetcode_c++:树:Validate Binary Search Tree(098)
- 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
- Android+HTML混合开发学习(一)
- 逆元
- Android疑难问题解决记录
- mysql的锁机制(1)
- 二叉树的增删改查
- leetcode_c++:树:Recover Binary Search Tree(099)
- python+webdriver自动化测试第一天
- 一个应用启动另一个应用+开机启动应用
- java编程题及答案
- Spark相关
- JDBC/InvocationHandler动态代理实现数据库连接池、数据源
- L2-013. 红色警报-PAT团体程序设计天梯赛GPLT(图的连通分量个数统计)
- WPF中的命令(一)- 使用命令的步骤
- Nike Shoes younger sister for more