1. 题目
给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。
示例:
输入:
1
\
3
/
2
输出:
1
解释:
最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 题解
由于是二叉搜索树,使用中序遍历,得到的是排序号的序列,比较两两值,取最小差即可。
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def __init__(self):
self.before_val = None
self.ans = float('inf')
def getMinimumDifference(self, root: TreeNode) -> int:
# 中序遍历
self.inOrder(root)
return self.ans
def inOrder(self, root):
if not root:
return
self.inOrder(root.left)
if self.before_val is not None:
self.ans = min(self.ans,root.val-self.before_val)
self.before_val = root.val
self.inOrder(root.right)