Recover Binary Search Tree
来源:互联网 发布:高中辅导书推荐知乎 编辑:程序博客网 时间:2024/06/06 04:33
Two elements of a binary search tree (BST) are swapped by mistake.
Recover the tree without changing its structure.
#include<iostream>#include<vector>#include<stack>using namespace std;struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), right(NULL) {}};void recoverTree(TreeNode *root) {TreeNode* pre_node = NULL;stack<TreeNode*>StackNode;TreeNode*cur_node = root;TreeNode*misnode1 = NULL;TreeNode*misnode2 = NULL;while (1){while (cur_node){StackNode.push(cur_node);cur_node = cur_node->left;}if (StackNode.empty()) break; cur_node = StackNode.top();StackNode.pop();if (pre_node!=NULL&&pre_node->val>cur_node->val){if (!misnode1){misnode1 = pre_node;misnode2 = cur_node;}elsemisnode2 = cur_node;}pre_node = cur_node;cur_node = cur_node->right;} if (misnode1&&misnode2)swap(misnode1->val,misnode2->val);}
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
- windows shell 编程
- MYSQL 1093 - You can't specify target table '' for update in FROM clause
- Linux压缩命名
- 聚类分析及k均值聚类
- 子类为什么不能重写父类的静态方法
- Recover Binary Search Tree
- 如何成为一名专家级的程序员
- 计算两个日期相隔天数 思路:假设1998-10-10 2010-5-5 首先获取1889-10-10这个日期在这一年中还剩多少天 再次获取2010-5-5这个日子在这一年内已经过了
- debian 8 Jessie配置
- Qt中禁止调节窗口大小
- N的阶乘中末尾有几个0
- 非线性滤波:中值、双边滤波
- gcc,gdb调试
- 利用libsvm测试小的数据集成功,知道怎么传参数了