[刷题记录Day21]Leetcode
No.1
题目
二叉搜索树的最小绝对差
思路
- 中序遍历的BST是有序序列
- 最小绝对差一定是在相邻的数组元素间
代码
public void inorderTraverse(TreeNode node, List<Integer> seq) {
if (node == null)
return;
inorderTraverse(node.left, seq);
seq.add(node.val);
inorderTraverse(node.right, seq);
}
public int getMinimumDifference(TreeNode root) {
List<Integer> inorderSeq = new ArrayList<>();
inorderTraverse(root, inorderSeq);
int min = Integer.MAX_VALUE;
for (int i = 1; i < inorderSeq.size(); i++) {
if (Math.abs(inorderSeq.get(i) - inorderSeq.get(i-1)) < min)
min = Math.abs(inorderSeq.get(i) - inorderSeq.get(i-1));
}
return min;
}
No.1
题目
二叉搜索树中的众数
思路
- 递归中序遍历BST
- 众数都靠在一起的
代码