力扣530 补9.12

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

可以做,就是中序遍历,把数从小到大排序,再循环找最小值。

再或者一个个遍历每个结点,把他跟父结点和爷结点比大小,更新最小值,因为要么左边要么右边跟中间节点比大小,不会让左边跟右边比大小。

class Solution {

    int num=0;

    int[] a=new int[10000];

    int ans=100000;

    public int getMinimumDifference(TreeNode root) {

        if(root==null){

            return 0;

        }

        dfs(root);

        // for(int i=0;i

        // System.out.println(a[i]);

        // }

        // System.out.println(num);

        for(int i=0;i

            ans=Math.min(a[i+1]-a[i],ans);

        }

        return ans;

    }

    void dfs(TreeNode root){

        if(root==null) return;

        dfs(root.left);

        a[num++]=root.val;

        // System.out.println(num);

        dfs(root.right);

    }

}

你可能感兴趣的:(力扣,算法,数据结构,java,职场和发展,leetcode)