LeetCode OJ 之 Recover Binary Search Tree(恢复二叉搜索树)
来源:互联网 发布:数据库应用课程 编辑:程序博客网 时间:2024/06/06 01:14
题目:
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?
一个二叉搜索树的两个结点被互换了,不改变它的结构恢复二叉树。
思路:
中序遍历过程中找出这两个弄错位置的结点,然后互换这两个结点的值。
代码:
/** * 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: TreeNode *mistake1 , *mistake2 , *pre; void recoverTree(TreeNode* root) { findMistake(root); if(mistake1 && mistake2) swap(mistake1->val , mistake2->val); } void findMistake(TreeNode *root) { if(root == NULL) return; findMistake(root->left); if(mistake1 == NULL && pre && pre->val >= root->val) mistake1 = pre; if(mistake1 && pre->val >= root->val) mistake2 = root; pre = root; findMistake(root->right); }};
0 0
- LeetCode OJ 之 Recover Binary Search Tree(恢复二叉搜索树)
- LeetCode | Recover Binary Search Tree(恢复二叉搜索树)
- Recover Binary Search Tree(恢复二叉搜索树)
- Leetcode 99. Recover Binary Search Tree 恢复二叉搜索树 解题报告
- LeetCode OJ 之 Validate Binary Search Tree (验证二叉搜索树)
- LeetCode 99. Recover Binary Search Tree(修复二叉搜索树)
- lintcode--二叉搜索树交换节点(leetcode--Recover Binary Search Tree)
- leetcode 99. Recover Binary Search Tree BST二叉搜索树的两元素交换的恢复 + 中序遍历
- Recover Binary Search Tree 恢复二分搜索树
- LeetCode OJ:Recover Binary Search Tree
- LeetCode OJ - Recover Binary Search Tree
- LeetCode OJ - Recover Binary Search Tree
- LeetCode OJ Recover Binary Search Tree
- leetCode 99.Recover Binary Search Tree(修正二叉搜索树) 解题思路和方法
- LeetCode OJ 之 Convert Sorted Array to Binary Search Tree(把有序数组转化为二叉搜索树)
- LeetCode OJ 之 Convert Sorted List to Binary Search Tree(把有序链表转化为二叉搜索树)
- LeetCode-99-Recover Binary Search Tree 二叉树交换结点
- LeetCode 之 Recover Binary Search Tree
- 深入理解虚拟机类加载机制
- 第十四周 项目1-小玩文件(2)
- 第二周 项目二 长方形类
- hadoop编程实例--平均成绩
- 第十四周 项目一 小玩文件(1)
- LeetCode OJ 之 Recover Binary Search Tree(恢复二叉搜索树)
- myBase Desktop Edition v5.3 不破解的破解
- 第十四周上机项目1.2小玩文件
- openstack kilo keystone token问题及性能优化
- [JQ权威指南]第二天:JQuery控制CSS样式
- Struts 2 学习笔记:Struts 2 的命名空间(namespace)的用法和作用
- 第十四周 阅读项目 标准输入输出流
- 开端:XMPP开发 Smack4.1+Openfire
- 中国第二代身份证验证js代码