leetcode中等530二叉搜索树的最小绝对差
Posted qq_40707462
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode中等530二叉搜索树的最小绝对差相关的知识,希望对你有一定的参考价值。
给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。
思路一:中序遍历存入列表,列表递增,相邻值之间差最小
class Solution {
List<Integer>list=new ArrayList<>();
public int getMinimumDifference(TreeNode root) {
dfs(root);
int res=Integer.MAX_VALUE;
for(int i=1;i<list.size();i++){
res=Math.min(res,list.get(i)-list.get(i-1));
}
return res;
}
public void dfs(TreeNode root){
if(root==null) return;
dfs(root.left);
list.add(root.val);
dfs(root.right);
}
}
思路二:递归中序遍历
在递归中途更新最小值
class Solution {
int res=Integer.MAX_VALUE;
TreeNode pre;
public int getMinimumDifference(TreeNode root) {
dfs(root);
return res;
}
public void dfs(TreeNode root){
if(root==null) return;
dfs(root.left);
if(pre!=null) res=Math.min(res,root.val-pre.val);
pre=root;
dfs(root.right);
}
}
以上是关于leetcode中等530二叉搜索树的最小绝对差的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode Algorithm 530. 二叉搜索树的最小绝对差