题目:(二叉搜索树的最小绝对差)给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。差值是一个正数,其数值等于两值之差的绝对值。
示例 1:
输入:root = [4,2,6,1,3] 输出:1
示例 2:输入:root = [1,0,48,null,null,12,49] 输出:1
提示:
树中节点的数目范围是 [2, 104] 0 <= Node.val <= 105
程序说明:
1、先中序遍历二叉搜索树,便可使数据排序好,将排序好的节点值分别与其前后两个节点的值做对比,即可得出最小差值。
全部代码:
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def getMinimumDifference(self, root: TreeNode) -> int:
stack = [(root, 0)]
pre = None
ans = 99999999
while stack:
p, stat = stack.pop()
if stat == 0:
if p.right:
stack.append((p.right, 0))
stack.append((p, 1))
if p.left:
stack.append((p.left, 0))
else:
if pre:
ans = min(ans, p.val - pre.val)
pre = p
return ans
题目来源:力扣(LeetCode)



