python-leetcode-二叉搜索树的最小绝对差

530. 二叉搜索树的最小绝对差 - 力扣(LeetCode)

python-leetcode-二叉搜索树的最小绝对差_第1张图片

python-leetcode-二叉搜索树的最小绝对差_第2张图片

python-leetcode-二叉搜索树的最小绝对差_第3张图片

# 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: Optional[TreeNode]) -> int:
        self.prev = None  # 记录前一个访问的节点值
        self.minDiff = float('inf')  # 初始化最小差值为正无穷

        def inorder(node):
            if not node:
                return
            inorder(node.left)  # 递归左子树
            if self.prev is not None:  # 计算当前值和前一个值的差
                self.minDiff = min(self.minDiff, node.val - self.prev)
            self.prev = node.val  # 更新前一个值
            inorder(node.right)  # 递归右子树
        
        inorder(root)
        return self.minDiff

你可能感兴趣的:(leetcode,算法,职场和发展)