Skip to content

Commit 85daea7

Browse files
author
zjg23
committed
二叉搜索树部分题目
1 parent be5ad93 commit 85daea7

1 file changed

Lines changed: 58 additions & 0 deletions

File tree

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* public class TreeNode {
4+
* int val;
5+
* TreeNode left;
6+
* TreeNode right;
7+
* TreeNode(int x) { val = x; }
8+
* }
9+
*/
10+
class Solution {
11+
12+
13+
14+
//二叉搜索树中序遍历得到递增序列,然后求差值最小
15+
16+
17+
18+
public int minDiffInBST(TreeNode root) {
19+
List<Integer> res = new ArrayList<Integer>();
20+
inorder(root,res);
21+
int min = Integer.MAX_VALUE;
22+
for(int i=1;i<res.size();i++) {
23+
min= Math.min(min, res.get(i)-res.get(i-1));
24+
}
25+
return min;
26+
}
27+
28+
private void inorder(TreeNode root,List<Integer> res) {
29+
if(null == root) return;
30+
31+
inorder(root.left,res);
32+
res.add(root.val);
33+
inorder(root.right,res);
34+
}
35+
36+
public static void main(String[] args) {
37+
//[27,null,34,null,58,50,null,44,null,null,null]
38+
TreeNode root = new TreeNode(44);
39+
TreeNode t1 = new TreeNode(34);
40+
TreeNode t2 = new TreeNode(58);
41+
TreeNode t3 = new TreeNode(27);
42+
TreeNode t4 = new TreeNode(36);
43+
44+
root.left = t1;
45+
root.right=t2;
46+
t1.left=t3;
47+
t1.right=t4;
48+
49+
System.out.println(new Solution().minDiffInBST(root));
50+
51+
}
52+
53+
54+
55+
56+
57+
58+
}

0 commit comments

Comments
 (0)