题目:
给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。
最终代码:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public int getMinimumDifference(TreeNode root) {
List<Integer> list=new ArrayList<>();
dfs(root,list);
int min=list.get(1)-list.get(0);
for(int i=2;i<list.size();i++){
System.out.print(list.get(i));
if(min>list.get(i)-list.get(i-1)){
min=list.get(i)-list.get(i-1);
}
}
return min;
}
public void dfs(TreeNode root,List<Integer> list){
if(root==null){
return;
}
dfs(root.left,list);
//System.out.print(root.val+" ");
list.add(root.val);
dfs(root.right,list);
return;
}
}