← Back to Leo Academy Masterclass

Problem #530: Minimum Absolute Difference in BST

Easy Binary Search Tree

Intuition & Strategy Breakdown

Perform in-order traversal on Binary Search Tree. Track previous node value to compute minimum absolute difference between adjacent values.

Python Solution

class Solution:
    def getMinimumDifference(self, root: Optional[TreeNode]) -> int:
        self.min_diff = float('inf')
        self.prev = None
        
        def dfs(node):
            if not node:
                return
            
            dfs(node.left)
            
            if self.prev is not None:
                self.min_diff = min(self.min_diff, node.val - self.prev)
            self.prev = node.val
            
            dfs(node.right)
            
        dfs(root)
        return self.min_diff

Java Solution

class Solution {
    int minDiff = Integer.MAX_VALUE;
    Integer prev = null;

    public int getMinimumDifference(TreeNode root) {
        dfs(root);
        return minDiff;
    }

    private void dfs(TreeNode node) {
        if (node == null) return;

        dfs(node.left);

        if (prev != null) {
            minDiff = Math.min(minDiff, node.val - prev);
        }
        prev = node.val;

        dfs(node.right);
    }
}
Watch Interactive Video on Leo Academy Main App