首页 > 其他分享 >LeetCode530 二叉搜索树的最小绝对差

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

时间:2024-08-15 14:23:51浏览次数:14  
标签:right TreeNode nums int root 二叉 搜索 LeetCode530 left

前言

题目: 530. 二叉搜索树的最小绝对差
文档: 代码随想录——二叉搜索树的最小绝对差
编程语言: C++
解题状态: 成功解决!

思路

注意题目中的二叉搜索树,这个条件暗示每个节点的左子节点肯定小于该节点,右子节点肯定大于该节点。因此,使用中序遍历可以获得一个递增的有序数组,最小绝对差肯定由相邻的两个元素产生。

代码

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
private:
    vector<int> nums;
    void traversal(TreeNode* root) {
        if (!root) return;
        traversal(root -> left);
        nums.push_back(root -> val);
        traversal(root -> right);
    }
public:
    int getMinimumDifference(TreeNode* root) {
        nums.clear();
        traversal(root);
        int min = INT_MAX;
        for (int i = 1; i < nums.size(); i++) {
            min = nums[i] - nums[i - 1] < min ? nums[i] - nums[i - 1] : min;
        }
        return min;
    }
};

标签:right,TreeNode,nums,int,root,二叉,搜索,LeetCode530,left
From: https://blog.csdn.net/daishabby2486/article/details/141219915

相关文章

  • LeetCode501 二叉搜索树中的众数
    前言题目:501.二叉搜索树中的众数文档:代码随想录——二叉搜索树中的众数编程语言:C++解题状态:不会…思路利用二叉搜索树性质的同时再加上双指针法。代码/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*lef......
  • 使用 JavaScript 进行线性搜索
    一.介绍线性搜索,也称为顺序搜索,是一种用于在列表中查找特定值的简单搜索算法。它的工作原理是逐个检查列表中的每个元素,直到找到所需的值或到达列表的末尾。以下是线性搜索如何工作的逐步描述。**从头开始:**从列表的第一个元素开始。**比较各个元素:**将当前元素与目标值......
  • 【二叉树进阶】--- 二叉搜索树转双向链表 && 最近公共祖先
     Welcometo9ilk'sCodeWorld    (๑•́₃•̀๑) 个人主页:     9ilk(๑•́₃•̀๑) 文章专栏:   数据结构本篇博客我们继续了解一些二叉树的进阶算法。......
  • 代码随想录训练营day20|235. 二叉搜索树的最近公共祖先,701.二叉搜索树中的插入操作,450
    二叉搜索树的最近公共祖先题目根据二叉搜索树的特性,它的公共祖先肯定是值夹在p和q之间的(满足此条件的第一个点)TreeNode*getroot(TreeNode*root,TreeNode*p,TreeNode*q){ if(rooot==NULL)returnNULL; if(root->val<p->val&&root->val<q->val){ returngetroot(r......
  • 每日一题:Leetcode-662 二叉树最大宽度
    力扣题目解题思路java代码力扣题目:给你一棵二叉树的根节点 root ,返回树的 最大宽度 。树的 最大宽度 是所有层中最大的 宽度 。每一层的 宽度 被定义为该层最左和最右的非空节点(即,两个端点)之间的长度。将这个二叉树视作与满二叉树结构相同,两端点间会出现一些......
  • 实现二叉树的前序遍历
    序遍历的顺序是:先访问根节点,再访问左子树,最后访问右子树。递归和迭代classTreeNode{intval;TreeNodeleft;TreeNoderight;TreeNode(intval){this.val=val;this.left=null;this.right=null;}}publicclass......
  • 实现二叉树的中序遍历
    中序遍历的顺序是:先访问左子树,再访问根节点,最后访问右子树。 classTreeNode{intval;TreeNodeleft;TreeNoderight;TreeNode(intval){this.val=val;this.left=null;this.right=null;}}publicclassInorde......
  • django常用的组合搜索组件
    文章目录django常用的组合搜索组件快速使用配置信息1.视图函数2.前端模板3.css样式代码实现django常用的组合搜索组件在项目开发中,如果有大量数据就要用到组合搜索,通过组合搜索对大块内容进行分类筛选。快速使用三步走:(其实主要就是传入配置信息)创建组合搜索......
  • 8.14信息学集训_树、搜索与剪枝
    目录P1305新二叉树B3642二叉树的遍历P4913【深基16.例3】二叉树深度P3884[JLOI2009]二叉树问题P8681[蓝桥杯2019省AB]完全二叉树的权值P1434[SHOI2002]滑雪P1040[NOIP2003提高组]加分二叉树P1074[NOIP2009提高组]靶形数独P2827[NOIP2016提高组]蚯蚓T266208......
  • 日撸Java三百行(day22:二叉树的存储)
    目录前言一、压缩存储二、层次遍历三、代码实现1.顺序表创建及初始化2.方法创建3.数据测试4.完整的程序代码总结前言关于二叉树的存储,昨天我们提到有顺序存储和链式存储这两种方式,不过非完全二叉树顺序存储的话会造成很大的空间浪费,所以我们昨天使用的是链式存储......