首页 > 其他分享 >day21 - 二叉树part07

day21 - 二叉树part07

时间:2023-09-05 14:13:43浏览次数:43  
标签:right TreeNode val int day21 part07 二叉树 root left

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

详解

/**
 * 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:
    TreeNode* pre = NULL;
    int result = INT_MAX;
    //中序遍历是递增的
    int getMinimumDifference(TreeNode* root) {
        if(root == NULL) return -1;
        getMinimumDifference(root->left);
        if(pre != NULL){
            result = min(result, abs(pre->val - root->val));
        }
        pre = root;
        getMinimumDifference(root->right);
        return result;
    }
};

 

标签:right,TreeNode,val,int,day21,part07,二叉树,root,left
From: https://www.cnblogs.com/zqh2023/p/17679400.html

相关文章

  • 二叉树
    节点(Node):树形结构中的基本单位,可以表示数据元素或对象。节点可以包含一个或多个子节点。根节点(RootNode):树的顶层节点,它没有父节点,是整个树的起点。子节点(ChildNode):树中每个节点都可以有零个或多个子节点,子节点是位于其父节点下方的节点。父节点(ParentNode):每个节点(除......
  • 用递归和非递归两种方式实现二叉树的先序遍历(前序遍历)
    一、分析先序遍历(前序遍历)遍历顺序为:根、左、右。二、递归实现publicclassNode{ publicintvalue;publicNodeleft;publicNoderight;publicNode(intdata){ this.value=data;}}publicvoidpreOrderRecur(Nodehead){ if(head==null){ return......
  • 《剑指Offer》-68-二叉树的最近公共祖先
    二叉搜索树 TreeNode*lowestCommonAncestor(TreeNode*root,TreeNode*p,TreeNode*q){ //如果p、q一定存在,那么root就一定不是空指针 TreeNode*traverse=root; while(true){ if(p->val<traverse->val&&q->val<traverse->val)traverse=tra......
  • leetcode226 翻转二叉树——简单
      #Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:definvertTree(self,root):......
  • 线索二叉树,树和森林
    线索二叉树,树和森林线索二叉树为什么要研究线索二叉树?二叉链表存储的二叉树无法找到某个结点的在某种遍历序列里面的前驱和后继结点.我们利用二叉链表中的指针与来寻找特定遍历序列的二叉树结点的前驱和后继根据前面的所学的内容,二叉链表中有n+1个空指针域,我们要把这些......
  • day20 - 二叉树 part06
    654. 最大二叉树详解/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):val(x),left(nullptr),r......
  • 数据结构与算法——二叉树+带你实现表达式树(附源码)
    ......
  • 对动态 DP 和全局平衡二叉树的一点补充解释
    说明:最近在帮高中竞赛教练写讲义,这是本人对讲义中动态DP内容的补充解释(因为主要是对知识点的理解,不太容易用通用的语言表述,也不适合作为讲义内容供读者阅读,所以用的是补充注释的形式)。写的比较抽象也比较初等,仅供意会。1.为什么用矩阵表示转移我们先从一般的角度,用映射的语言......
  • 手撕代码之二叉树
    文章目录一、根据排序数组构造二叉搜索树(leetcode108)二、根据前序遍历和中序遍历构造二叉树(leetcode105)三、二叉树的非递归遍历(leetcode94、144、145)四、二叉树中和为某一值的路径(leetcode112)五、二叉树的最大深度(leetcode104)六、二叉树的层次遍历(leetcode102)七、判断两个二......
  • 二叉树的存储结构和操作算法
    二叉树的存储结构和操作算法二叉树的存储结构1.顺序存储结构(完全二叉树/满二叉树)2.链式存储结构(一般二叉树).顺序存储结构按照满二叉树的结点层次编号,然依次后储存在数组当中如果该二叉树中位置是空的再对应到数组中的时候就使用0来填充.二叉树顺序存储结构的缺点......