给定一个二叉搜索树的根结点 root,返回树中任意两节点的差的最小值。
解题思路:使用二叉搜索树的性质,因为题目是要寻找任意两个节点的差的最小值,因此可以通过中序遍历找到差的最小值。
其Python代码如下:
# 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.min_num = float("inf") # 用于保存当前的最小差值
self.num = -100 # 用于保存中序遍历的上一个节点值
def minDiffInBST(self, root: TreeNode) -> int:
if root.left:
self.minDiffInBST(root.left) # 递归
self.min_num = min(self.min_num,root.val-self.num) # 最小值进行更新
self.num = root.val # 当前值的上一个值进行更新
if root.right: # 递归
self.minDiffInBST(root.right)
return self.min_num