[LeetCode] Recover Binary Search Tree
来源:互联网 发布:怎么查淘宝消费总额 编辑:程序博客网 时间:2024/05/08 08: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?
主要思路:
使用树的递归中序遍历,当出现当前值比前一个小的时候,就存在不合法的节点。用pre存中序遍历时当前节点的前一个节点,方便值的大小对比。用p,q记录两个不合法序列的位置,p指向较小的值,q指向较大的值。
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode *p, *q, *pre; void recoverTree(TreeNode *root) { p = q = pre = nullptr; inorder(root); swap(p->val, q->val); } void inorder(TreeNode *root) { if(root == nullptr) return; if(root->left) inorder(root->left); if(pre && pre->val > root->val) { if(p == nullptr) p = pre; q = root; } pre = root; if(root->right) inorder(root->right); }};参考:http://www.cnblogs.com/tgkx1054/archive/2013/05/24/3096830.html
0 0
- LeetCode: Recover Binary Search Tree
- LeetCode: Recover Binary Search Tree
- [Leetcode] Recover Binary Search Tree
- [LeetCode] Recover Binary Search Tree
- [Leetcode] Recover Binary Search Tree
- [leetcode] recover binary search tree
- LeetCode -- Recover Binary Search Tree
- [LeetCode]Recover Binary Search Tree
- [LeetCode] Recover Binary Search Tree
- LeetCode:Recover Binary Search Tree
- [Leetcode]Recover Binary Search Tree
- Leetcode: Recover Binary Search Tree
- LeetCode-Recover Binary Search Tree
- [leetcode] Recover Binary Search Tree
- [LeetCode] Recover Binary Search Tree
- 【Leetcode】Recover Binary Search Tree
- Leetcode Recover Binary Search Tree
- LeetCode | Recover Binary Search Tree
- 朴素排序法 冒泡的实现。
- 二进制、八进制、十六进制之间的关系
- 如何搜索salesforce相关文档
- nginx之hash
- log4c 总结
- [LeetCode] Recover Binary Search Tree
- WebScarab新手教程
- 创建位图
- ListView系列(七)——Adapter内的onItemClick监听器四个arg参数
- MFC学习笔记1--Win32基本程序观念
- 各种地图坐标系详解
- java- xml 本地配置信息读取
- [LeetCode] [Python] [DP] Best Time to Buy and Sell Stock III
- 22.特别的幸运数 (15分)