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

news/2024/7/5 3:09:54

LeetCode530. 二叉搜索树的最小绝对差

    • 题目链接
    • 代码

题目链接

https://leetcode.cn/problems/minimum-absolute-difference-in-bst/
在这里插入图片描述

代码

递归

# 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 __init__(self):
        self.vec = []
    def traversal(self, root):
        if root is None:
            return 
        self.traversal(root.left)
        self.vec.append(root.val)
        self.traversal(root.right)

    def getMinimumDifference(self, root: Optional[TreeNode]) -> int:
        self.vec = []
        self.traversal(root)

        if len(self.vec) < 2:
            return 0
        result = float('inf')
        
        for i in range(len(self.vec) - 1):
            result = min(result, (self.vec[i + 1] - self.vec[i]))
        return result

迭代

# 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:
        stack = []
        cur = root
        result = float('inf')
        pre = None
        while cur is not None or len(stack) > 0:
            if cur is not None:
                stack.append(cur)
                cur = cur.left
            else:
                cur = stack.pop()
                if pre is not None:
                    result = min(result, cur.val - pre.val)
                pre = cur
                cur = cur.right
        return result


http://lihuaxi.xjx100.cn/news/1494467.html

相关文章

Java doc等文件生成PDF、多个PDF合并

之前写过一遍文章是 图片生成PDF。 今天继续来对 doc等文件进行pdf合并以及多个pdf合并为一个pdf。 兄弟们&#xff0c;还是开箱即用。 1、doc生成pdf 依赖 <!-- doc生成pdf --><dependency><groupId>com.aspose</groupId><artifactId>aspose…

ApiPost软件会对数据进行预处理,有可能会导致数据报错

文章目录 测试数据正确的请求方式当URL有数据被修改之后&#xff08;数据就不一致了&#xff09; 测试数据 %257B%2522pageNum%2522:1,%2522pageSize%2522:10,%2522param%2522:%257B%2522flowType%2522:1,%2522workcardType%2522:%2522作者的请求方便大家一键复制 localhost:…

dp答案和状态互换 || 多询问类dp转倍增/二分优化:CF1175E

https://www.luogu.com.cn/problem/CF1175E Trick 1 按照正常套路 d p i dp_i dpi​ 为到达 i i i &#xff08;限制&#xff09;最少多少条&#xff08;答案&#xff09;&#xff0c;其实可以转化为 d p i dp_i dpi​ 用 i i i 条&#xff08;限制&#xff09;最远可以到…

安装grpc

安装过程依照 官网指南&#xff0c;以下内容为进一步解释 1.将 MY_INSTALL_DIR 环境变量设置为当前用户的主目录下的 .local 子目录路径。export 命令用于将环境变量添加到当前会话的环境中&#xff0c;使其对于后续执行的命令和子进程都可用。 export MY_INSTALL_DIR$HOME/.l…

涉及结构体的排序问题

简单举一个例子来介绍涉及结构体的排序问题。 例&#xff1a;输入若干学生姓名、语文成绩、数学成绩、英语成绩&#xff0c;根据三科成绩总分由高到低进行排序。 输入数据&#xff1a; 小明 78 89 90 小红 87 88 77 小华 91 92 96 输出样例&#xff1a; 小华 91 92 96 279 小明…

C# List与HashSet的contains()方法查询速度比较

List 和HashSet同时查询40万条数据&#xff0c;谁的效率更高&#xff1f; //**1.下面是List底层源码**public boolean contains(Object o) {//如果查到我们想要查询的值则返回一个true&#xff0c;否则返回false&#xff0c;return indexOf(o) > 0;//这里是调用了indexOf方…

为何我要写Qt入门教程

C的就业市场 C的就业市场有如下的典型特征&#xff0c;尤其是一些有价值的岗位。 行业众多难以培训 C的就业市场很难通过标准化的培训来实现&#xff0c;往往隔行如隔山。 不同的行业&#xff0c;虽然都用C&#xff0c;但是他们的业务确是完全不相关。 使用的技术点&#…

JSX基础

1. JSX介绍 概念&#xff1a;JSX是 JavaScript XML&#xff08;HTML&#xff09;的缩写&#xff0c;表示在 JS 代码中书写 HTML 结构 作用&#xff1a;在React中创建HTML结构&#xff08;页面UI结构&#xff09; 优势&#xff1a; 采用类似于HTML的语法&#xff0c;降低学习成…