Recover Binary Search Tree
2014-08-16 10:57
246 查看
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?
confused what
read more on how binary tree is serialized on OJ.
Have you been asked this question in an interview?
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?
confused what
"{1,#,2,3}"means? >
read more on how binary tree is serialized on OJ.
Have you been asked this question in an interview?
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { TreeNode first = null; TreeNode second = null; TreeNode last = new TreeNode(Integer.MIN_VALUE); public void recoverTree(TreeNode root) { inOrderTraverse(root); if (second != null) { int temp = first.val; first.val = second.val; second.val = temp; } } void inOrderTraverse(TreeNode root) { if (root == null) { return; } inOrderTraverse(root.left); //因为是中序遍历,所以第一个值肯定是偏大的那个 if (first == null && root.val < last.val) { first = last; //注意 不要写成else if,因为对于first 和 second 付值是不冲突的 } if (first != null && root.val < last.val) { second = root; // return; // 注意这里不要写 return. 找到first以后,一直到second 之前的 所有数都要比first小。如果写return 了 返回的是 first之后 // 的第一个数,并比一定就是需要替换的数字。只有当 first 和second 是相邻的节点才正确。 } last = root; inOrderTraverse(root.right); } }
相关文章推荐
- 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
- Recover Binary Search Tree
- LeetCode: Recover Binary Search Tree
- [LeetCode] - Recover Binary Search Tree
- leetcode 099 —— Recover Binary Search Tree
- Leetcode: Recover Binary Search Tree
- leetcode || 99、Recover Binary Search Tree
- Recover Binary Search Tree
- LeetCode Recover Binary Search Tree
- leetCode_Recover Binary Search Tree
- leetcode:Recover Binary Search Tree
- [leetcode]Recover Binary Search Tree
- Recover Binary Search Tree
- 99. Recover Binary Search Tree (Tree; DFS)
- *LeetCode-Recover Binary Search Tree
- LeetCode | Recover Binary Search Tree