Easy
Given the root
of a Binary Search Tree (BST), return the minimum absolute difference between the values of any two different nodes in the tree.
Example 1:
Input: root = [4,2,6,1,3]
Output: 1
Example 2:
Input: root = [1,0,48,null,null,12,49]
Output: 1
Constraints:
[2, 104]
.0 <= Node.val <= 105
Note: This question is the same as 783: https://leetcode.com/problems/minimum-distance-between-bst-nodes/
from typing import Optional
class TreeNode:
def __init__(self, val: int = 0, left: Optional['TreeNode'] = None, right: Optional['TreeNode'] = None):
self.val = val
self.left = left
self.right = right
class Solution:
def getMinimumDifference(self, root: Optional[TreeNode]) -> int:
self.ans = float('inf')
self.prev = float('inf')
def inorder(node: Optional[TreeNode]) -> None:
if node is None:
return
inorder(node.left)
self.ans = min(self.ans, abs(node.val - self.prev))
self.prev = node.val
inorder(node.right)
inorder(root)
return self.ans