一、题目
二、代码
/**
* 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
{
int return_distance = 0;
List<Integer> re_list = new LinkedList<>();
public void recur(TreeNode pro)
{
if(pro.left != null) recur(pro.left);
re_list.add(pro.val);
if(pro.right != null) recur(pro.right);
}
public int getMinimumDifference(TreeNode root)
{
int i;
int length;
int min =Integer.MAX_VALUE;
recur(root);
length = re_list.size();
// for(i=0;i<length;i++) System.out.println("re_list[i] " +re_list.get(i));
for(i=1;i<length;i++)
{
if(Math.abs(re_list.get(i-1)-re_list.get(i)) < min) min = Math.abs(re_list.get(i-1)-re_list.get(i));
}
return min;
}
}
三、运行结果
四、附录
二刷
/**
* 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
{
List<Integer> record = new LinkedList<>();
public void track( TreeNode pro)
{
if(pro==null) return;
if(pro.left!=null) track(pro.left);
record.add(pro.val);
if(pro.right!=null) track(pro.right);
}
public int getMinimumDifference(TreeNode root)
{
track(root);
int res = Integer.MAX_VALUE;
int i;
int length = record.size();
for(i=1;i<length;i++)
{
res = Math.min(res,record.get(i)-record.get(i-1) );
}
return res;
}
}