给定一个所有节点为非负值的二叉搜索树,求树中任意两节点的差的绝对值的最小值。
示例 :
输入: 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