LeetCode-Recover Binary Search Tree
2013-08-15 16:30
429 查看
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: void recoverTree(TreeNode *root) { // Start typing your C/C++ solution below // DO NOT write int main() function TreeNode *p = root; TreeNode *pre = NULL; TreeNode *first = NULL; TreeNode *second = NULL; TreeNode *third = NULL; TreeNode *fourth = NULL; stack<TreeNode *> stk; while (p != NULL || !stk.empty()) { if (p == NULL) { p = stk.top(); stk.pop(); if (pre == NULL) { pre = p; } else { if (pre->val > p->val) { if (first == NULL) { first = pre; second = p; } else { third = pre; fourth = p; break; } } pre = p; p = p->right; } } else { stk.push(p); p = p->left; } } if (third == NULL) { int tmp = first->val; first->val = second->val; second->val = tmp; } else { int tmp = first->val; first->val = fourth->val; fourth->val = tmp; } } };
相关文章推荐
- LeetCode(99) 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][BST] Recover Binary Search Tree
- [LeetCode]Recover Binary Search Tree
- Leetcode: Recover Binary Search Tree
- [LeetCode-75]Recover Binary Search Tree
- Leetcode: Recover Binary Search Tree
- 【LeetCode】【求助】Recover Binary Search Tree
- LeetCode 99:Recover Binary Search Tree
- leetCode 99: Recover Binary Search Tree
- 【LeetCode】 Recover Binary Search Tree BST 中序遍历
- Leetcode:Recover Binary Search Tree
- 【LeetCode】Recover BinarySearch Tree
- LeetCode – Refresh – Recover Binary Search Tree
- leetcode - Recover Binary Search Tree
- leetcode — recover-binary-search-tree