每日一题力扣530 二叉搜索树的最小绝对查

 

给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。

 

class Solution:
    def getMinimumDifference(self, root: TreeNode) -> int:
        #初始化,最小值赋值为无穷大,last_value记录上一个节点的值
        min_value, last_value = float("inf"), -1
        def pengding_num(val):
            nonlocal min_value, last_value
            #第一个节点赋值给last_value
            if last_value == -1:
                last_value = val
            else:
                #每一次都用当前值减去上一时刻的值,取最小值,然后把当前值变成上一时刻的值
                min_value = min(min_value, abs(val - last_value))
                last_value = val
        #中序遍历
        def mid_order(root):
            nonlocal min_value, last_value
            if root:
                mid_order(root.left)#中序遍历,
                #处理当前节点
                pengding_num(root.val)
                mid_order(root.right)
        mid_order(root)
        return min_value

 

posted @ 2021-04-14 19:28  小千北同学超爱写代码  阅读(40)  评论(0编辑  收藏  举报