题目地址(530. 二叉搜索树的最小绝对差)
https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst/
题目描述
给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。差值是一个正数,其数值等于两值之差的绝对值。示例 1:输入:root = [4,2,6,1,3]输出:1示例 2:输入:root = [1,0,48,null,null,12,49]输出:1提示:树中节点的数目范围是 [2, 104]0 <= Node.val <= 105注意:本题与 783 https://leetcode-cn.com/problems/minimum-distance-between-bst-nodes/ 相同
前置知识
公司
- 暂无
思路
关键点
Java Code:
/*** 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 res = Integer.MAX_VALUE;//前一个节点TreeNode pre ;public int getMinimumDifference(TreeNode root) {loop(root);return res;}public void loop(TreeNode root) {if (root == null) {return;}loop(root.left);if (pre != null) {//最大值和 当前值-上个值 取一个小值res = Math.min(res, root.val - pre.val);}pre = root;loop(root.right);}}
复杂度分析
令 n 为数组长度。
- 时间复杂度:
#card=math&code=O%28n%29&id=JQfuM)
- 空间复杂度:
#card=math&code=O%28n%29&id=Sj2Wg)
