|
6 | 6 | **/ |
7 | 7 | public class MinimumAbsoluteDifferenceinBST { |
8 | 8 |
|
| 9 | + TreeNode nodeval=null; |
| 10 | + int min=Integer.MAX_VALUE; |
| 11 | + |
| 12 | + /////// |
| 13 | + public int getMinimumDifferenceTwo(TreeNode root) { |
| 14 | + if(root != null) |
| 15 | + compareTreeNode(root); |
| 16 | + return min; |
| 17 | + } |
| 18 | + public void compareTreeNode(TreeNode node){ |
| 19 | + |
| 20 | + if(node == null){ |
| 21 | + return; |
| 22 | + } |
| 23 | + compareTreeNode(node.left); |
| 24 | + if(nodeval != null){ |
| 25 | + min =Math.min(node.val - nodeval.val ,min); |
| 26 | + } |
| 27 | + nodeval =node; |
| 28 | + compareTreeNode(node.right); |
| 29 | + } |
| 30 | + |
| 31 | + |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | + ///// |
9 | 36 | public int getMinimumDifference(TreeNode root) { |
10 | 37 | if(root != null){ |
11 | 38 | return compareTree(Integer.MAX_VALUE,root); |
@@ -74,23 +101,24 @@ public void inorder(TreeNode root) { |
74 | 101 |
|
75 | 102 |
|
76 | 103 | public static void main(String[] args) { |
77 | | -// TreeNode t =new TreeNode(1); |
78 | | -// TreeNode t1 =new TreeNode(3); |
79 | | -// TreeNode t2 =new TreeNode(2); |
80 | | -// t1.left=t2; |
81 | | -// t.right=t1; |
82 | | - |
83 | | - TreeNode t =new TreeNode(236); |
84 | | - TreeNode t1 =new TreeNode(104); |
85 | | - TreeNode t2 =new TreeNode(227); |
86 | | - TreeNode t3 =new TreeNode(701); |
87 | | - TreeNode t4 =new TreeNode(911); |
88 | | - t1.right=t2; |
89 | | - t3.right=t4; |
90 | | - t.left=t1; |
91 | | - t.right=t3; |
| 104 | + TreeNode t =new TreeNode(1); |
| 105 | + TreeNode t1 =new TreeNode(5); |
| 106 | + TreeNode t2 =new TreeNode(3); |
| 107 | + t1.left=t2; |
| 108 | + t.right=t1; |
| 109 | + |
| 110 | +// TreeNode t =new TreeNode(236); |
| 111 | +// TreeNode t1 =new TreeNode(104); |
| 112 | +// TreeNode t2 =new TreeNode(227); |
| 113 | +// TreeNode t3 =new TreeNode(701); |
| 114 | +// TreeNode t4 =new TreeNode(911); |
| 115 | +// t1.right=t2; |
| 116 | +// t3.right=t4; |
| 117 | +// t.left=t1; |
| 118 | +// t.right=t3; |
92 | 119 | // System.out.println(new MinimumAbsoluteDifferenceinBST().getMinimumDifference(t)); |
93 | | - System.out.println(new MinimumAbsoluteDifferenceinBST().getMinimum(t)); |
| 120 | +// System.out.println(new MinimumAbsoluteDifferenceinBST().getMinimum(t)); |
| 121 | + System.out.println(new MinimumAbsoluteDifferenceinBST().getMinimumDifferenceTwo(t)); |
94 | 122 | } |
95 | 123 |
|
96 | 124 | } |
|
0 commit comments