leetcode99. Recover Binary Search Tree
来源:互联网 发布:陆行鲨机甲风暴java 编辑:程序博客网 时间:2024/06/14 21:47
题目
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?
解法
如果空间o(n)的复杂度,可以利用两个向量,一个存储所有的节点,一个存储所有的值,对bst进行中序遍历,如果bst为正确的,那么得到的节点应该是按照顺序排列,所以我们可以将我们得到的值按照顺序排序,然后依次赋值给节点,得到的即为正确的bst。
代码
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<TreeNode*> node; vector<int> value; void inorder(TreeNode* r) { if(r == NULL) return; inorder(r->left); node.push_back(r); value.push_back(r->val); inorder(r->right); } void recoverTree(TreeNode* root) { inorder(root); sort(value.begin(), value.end()); for(int i = 0; i < value.size(); i ++) { node[i]->val = value[i]; } }};
阅读全文
0 0
- Leetcode99. Recover Binary Search Tree
- leetcode99. Recover Binary Search Tree
- LeetCode99—Recover Binary Search Tree
- leetcode99 Recover Binary Search Tree java 算法
- leetcode99---Recover Binary Search Tree(morris中序遍历恢复BST)
- 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
- CI框架全局登录验证控制方法
- Thinkphp框架图片上传实例
- POJ 1852(脑洞)
- BZOJ 1296: [SCOI2009]粉刷匠 背包
- More Effective C++学习笔记-条款1|2|3|4
- leetcode99. Recover Binary Search Tree
- arcgis for android之加载移动地图包
- 获取一个数二进制序列,分别输出奇数列和偶数列
- spring boot后台管理系统,shiro权限管理, restful风格的接口
- STM32F4之FPU性能的充分发挥-设置要点
- Python搭建OpenCV
- shiro缓存
- 自己模拟strcmp库函数写的功能函数my_strcmp实现strcmp的功能,完整代码
- 18_树的子结构