Minimum Absolute Difference in BST
Problem Summary
What is Being Asked?
Approach Taken
Approach Taken
- if the input is sorted, for example:
[1,2,3,5,6]
- then min diff is basically checking for two side by side nums
- since this is a Binary Search Tree
- the In-order Traversal of it is sorted
Main Concepts Used
Time & Space Complexity
- Time: → Reason: Visiting each node once
- Space: → Reason: For unbalanced tree the height could be
Code
class Solution:
def __init__(self):
self.result = float("inf")
self.prev = float("inf")
def getMinimumDifference(self, root: Optional[TreeNode]) -> int:
self.helper(root)
return self.result
def helper(self, root):
if not root:
return
self.helper(root.left)
self.result = min(abs(self.prev - root.val), self.result)
self.prev = root.val
self.helper(root.right)