码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode Recover Binary Search Tree

时间:2014-12-19 00:21:29      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   ar   io   color   sp   for   

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 "{1,#,2,3}" means? > read more on how binary tree is serialized on OJ.

 

 1 /**
 2  * Definition for binary tree
 3  * public class TreeNode {
 4  *     int val;
 5  *     TreeNode left;
 6  *     TreeNode right;
 7  *     TreeNode(int x) { val = x; }
 8  * }
 9  */
10 public class Solution {
11 
12 
13     TreeNode n1 = null;
14     TreeNode n2 = null;
15     TreeNode pre = null;
16 
17     public void recoverTree(TreeNode root) {
18         findNodes(root);
19         if (n1 != null && n2 != null) {
20             int temp = n1.val;
21             n1.val = n2.val;
22             n2.val = temp;
23         }
24     }
25 
26     void findNodes(TreeNode root) {
27         if (root == null) {
28             return;
29         }
30         findNodes(root.left);
31         if (pre != null && pre.val > root.val) {
32             if (n1 == null) {
33                 n1 = pre;
34             }
35             n2 = root;
36         }
37         pre = root;
38         findNodes(root.right);
39     }
40 
41 
42 }

 

LeetCode Recover Binary Search Tree

标签:des   style   blog   http   ar   io   color   sp   for   

原文地址:http://www.cnblogs.com/birdhack/p/4172965.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!