530. 二叉搜索树的最小绝对差_算法


好家伙

530. 二叉搜索树的最小绝对差_算法_02


思想:二叉搜索树的中序遍历结果是升序的,将遍历结果存到list中,再相邻的值相减,查找最小值

/**
* 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 min = list.get(list.size() - 1)-list.get(list.size() - 2);
for (int i = list.size()-1; i > 0; i--){
if (list.get(i)-list.get(i-1) < min) min = list.get(i)-list.get(i-1);
}
return min;

}
public void inorder(TreeNode root){
if (root == null) return;
inorder(root.left);
list.add(root.val);
inorder(root.right);
}
}

如果你有更加低的时间/空间复杂度的算法,欢迎在评论区讨论。