首页 > 其他分享 >代码随想录:二叉搜索树的最小绝对值

代码随想录:二叉搜索树的最小绝对值

时间:2025-01-16 20:12:20浏览次数:1  
标签:node right TreeNode val int 随想录 二叉 绝对值 left

遍历二叉搜索树,定义一个全局的上一个节点确实好用

/**
 * 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 {
public:
    int res = 100001;
    TreeNode* pre = NULL;
    int getMinimumDifference(TreeNode* root) {
        tra(root);
        return res;
    }
    void tra(TreeNode* node){
        if(!node)return;
        tra(node->left);
        if(pre!=NULL){
            res = min(res,node->val-pre->val);
        }
        pre = node;
        tra(node->right);

    }
};

标签:node,right,TreeNode,val,int,随想录,二叉,绝对值,left
From: https://www.cnblogs.com/huigugu/p/18675681

相关文章

  • 代码随想录:验证二叉搜索树
    二叉搜索树的中序遍历结果是一个递增的数组为了省空间可以用一个变量记录上一次的数字我一开始设置上一次的为null,结果c++中int为null时实际为0,所以要用最小值/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*......
  • 二叉查找树
    二叉查找树对于任意一棵子树,其左子树比根节点小,右子树比根节点大。即:左<根<右查找比较目标值与根节点的大小关系,大就往右边找;小就往左边找;直到找到为止,如果到最后没有找到,则返回nullptrNode*BST::searchByIter(Node*bst,DataTypetarget){while(bst!=......
  • 代码随想录算法训练营第二十天 | 235. 二叉搜索树的最近公共祖先、701. 二叉搜索树中
    235.二叉搜索树的最近公共祖先题目链接:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/description/文档讲解:https://programmercarl.com/0235.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E6%9C%80%E8%BF%91%E5%85%AC%E5%......
  • 代码随想录Day36 | 1049.最后一块石头的重量 II,494.目标和,474.一和零
    代码随想录Day36|1049.最后一块石头的重量II,494.目标和,474.一和零1049.最后一块石头的重量视为背包问题,求解sum/2容量背包能装下的最大重量返回的是这一部分石头与另一部分的差值的绝对值代码即为经典的01背包问题classSolution{publicintlastSt......
  • 代码随想录:验证二叉搜索树
    二叉搜索树的中序遍历结果是一个递增的数组为了省空间可以用一个变量记录上一次的数字我一开始设置上一次的为null,结果c++中int为null时实际为0,所以要用最小值/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*......
  • 【代码随想录】刷题记录(102)-不同路径 II
    题目描述:给定一个 mxn 的整数数组 grid。一个机器人初始位于 左上角(即 grid[0][0])。机器人尝试移动到 右下角(即 grid[m-1][n-1])。机器人每次只能向下或者向右移动一步。网格中的障碍物和空位置分别用 1 和 0 来表示。机器人的移动路径中不能包含 任何 有......
  • 数据结构—《二叉树的定义与特性》
    目录1.二叉树的定义2.特殊的二叉树1)满二叉树2)完全二叉树3)二叉排序树。4)平衡二又树。5)正则二文树3.二叉树的性质4.二叉树的存储结构1)顺序存储结构2)链式存储结构1.二叉树的定义二叉树是一种特殊的树形结构,其特点是每个结点至多只有两棵子树(即二叉树中不存在度大......
  • 数据结构之链式二叉树
    前言:前面我们学习了树相关的概念及堆的实现,今天来看看二叉树的实现。正式实现二叉树前,我们先了解一些基础知识。对于二叉树基础知识不清楚的可以观看数据结构------树这篇文章,回顾一下知识,有助于理解二叉树。二叉树的遍历方式都有哪些呢?.前序遍历:按照根节点,左节点,右节......
  • 代码随想录Day35 | 01背包问题 二维,01背包问题 一维,416.分割等和子集
    代码随想录Day35|01背包问题二维,01背包问题一维,416.分割等和子集01背包问题二维动态规划经典问题dp定义:dp[i][j]表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少状态转移方程:dp[i][j]=max(dp[i-1][j],dp[i-1][j-weight[i]]+va......
  • 代码随想录算法训练营总结
            为期2个月的训练营时间,总算是一步一步的顺利结束了,撒花撒花!!!    这个训练营算是我第一次比较系统的进行学习数据结构和算法以及刷力扣,以前总是刷到一半就半途而费了,这次总算是坚持着跟着群里的打卡节奏一步一步的完结了。    对于内容来说,内......