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

时间:2021-04-15 12:22:03   收藏:0   阅读:0

 

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

 

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

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!