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

    xiaoxiao2024-12-15  12

    题目

    给定一个所有节点为非负值的二叉搜索树,求树中任意两节点的差的绝对值的最小值。

    示例 :

    输入: 1 \ 3 / 2 输出: 1 解释: 最小绝对差为1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。

    注意: 树中至少有2个节点。

    代码

    小结:通过中序遍历,就可以将二叉树以有序数组的方式遍历出来。任意两个树节点的最小差,就是有序数组邻近值的最小差。

    # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): def inorder(self, root): if root: self.inorder(root.left) if self.pre != None: self.res = min(self.res, abs(root.val - self.pre)) self.pre = root.val self.inorder(root.right) def getMinimumDifference(self, root): """ :type root: TreeNode :rtype: int """ self.pre = None self.res = float('inf') self.inorder(root) return self.res

     

    最新回复(0)