Recover Binary Search Tree
2015-06-08 21:09
204 查看
class Solution {
public:
TreeNode *s1,*s2,*pre;
void recoverTree(TreeNode* root) {
if(!root)return ;
s1=s2=pre=NULL;
find(root);
swap(s1->val,s2->val);
}
void find(TreeNode* root)
{
if(root==NULL) return;
find( root->left);
if(pre&&pre->val>root->val)
{
if(s1==NULL) s1=pre,s2=root;
else s2=root;
}
pre=root;
find(root->right);
}
};
中序遍历时pre 始终指向root的前一个。
public:
TreeNode *s1,*s2,*pre;
void recoverTree(TreeNode* root) {
if(!root)return ;
s1=s2=pre=NULL;
find(root);
swap(s1->val,s2->val);
}
void find(TreeNode* root)
{
if(root==NULL) return;
find( root->left);
if(pre&&pre->val>root->val)
{
if(s1==NULL) s1=pre,s2=root;
else s2=root;
}
pre=root;
find(root->right);
}
};
中序遍历时pre 始终指向root的前一个。
相关文章推荐
- hdu 5058 So easy
- Myecilipse发布web项目
- Leetcode[118]-Pascal's Triangle
- 6.2.1 工厂模式
- 使用QT 4.8.6 + Cmake 3.0.0 编译 最新版本OpenCv3.0.0
- 一些项目——Moving Tables
- GitHub NetFlow
- 借root之名,行流氓之实,劝告,root需谨慎
- 开源图计算框架GraphLab介绍
- shell中的${},##和%%的使用
- char 型变量中能不能存贮一个中文汉字?为什么?
- Linux root直接登录
- 第13周-项目2-用文件保存的学生名单
- YUM 和 RPM 总结
- QT 4.7.6 驱动 罗技C720摄像头
- cnblogs用户体验评价
- iOS开发网络数据之AFNetworking使用2.0和2.5
- Gabor变换
- 第13周-项目1-小玩文件-用键盘输入文件名,统计输出类似下面的数据
- javascript 之闭包-理解不了来找我