题目描述:
标签:树
给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。
代码:
思路分析:
1、中序遍历形成增序链表
2、遍历链表,找到差绝对值最小值
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
List<Integer> list = new ArrayList<>();
public int getMinimumDifference(TreeNode root) {
inorder(root);
int result = Integer.MAX_VALUE;
for(int i = 1;i < list.size();i++){
if((list.get(i) - list.get(i-1)) < result){
result = list.get(i) - list.get(i-1);
}
}
return result;
}
public void inorder(TreeNode root){
if(root == null){
return;
}
inorder(root.left);
list.add(root.val);
inorder(root.right);
}
}