首页 > 其他分享 >day15

day15

时间:2024-09-08 21:17:36浏览次数:3  
标签:right TreeNode val nullptr day15 root left

  1. 二叉搜素树的最小绝对差

/**

  • 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:
    Solution()
    :min(INT_MAX), pre(nullptr)
    {
    }
    void traversal(TreeNode cur)
    {
    if(cur == nullptr)
    {
    return;
    }
    traversal(cur->left);
    if(pre != nullptr)
    {
    if(min > cur->val - pre->val)
    {
    min = cur->val - pre->val;
    }
    }
    pre = cur;
    traversal(cur->right);
    }
    int getMinimumDifference(TreeNode
    root)
    {
    traversal(root);
    return min;
    }
    private:
    int min;
    TreeNode *pre;
    };
  1. 二叉搜索树中的众数

/**

  • 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:
    void traversal(TreeNode *cur)
    {
    if(cur == nullptr)
    {
    return;
    }
    traversal(cur->left);
    if(pre != nullptr)
    {
    if(pre->val == cur->val)
    {
    ++num;

     if(num > max)
     {
         max = num;
         value.clear();
         value.push_back(pre->val);
     }
     if(num == max)
     {
         value.push_back(pre->val);
     }
         }
         else
         {
             num = 1;
         }
     }
     else
     {
         num = 1;
     }
     pre = cur;
     
     traversal(cur->right);
    

    }
    vector findMode(TreeNode* root) {
    value.clear();
    traversal(root);
    return value;
    }
    private:
    int max = 0;
    int num = 0;
    vector value;
    TreeNode *pre = nullptr;
    };

  1. 二叉树的最近公共祖先

    /**

  • Definition for a binary tree node.
  • struct TreeNode {
  • int val;
    
  • TreeNode *left;
    
  • TreeNode *right;
    
  • TreeNode(int x) : val(x), left(NULL), right(NULL) {}
    
  • };
    /
    class Solution
    {
    public:
    TreeNode
    traversal(TreeNode *root, TreeNode p, TreeNode q)
    {
    if(root == nullptr)
    {
    return nullptr;
    }
    if(root == p || root == q)
    {
    return root;
    }
    TreeNode left = traversal(root->left, p, q);
    TreeNode right = traversal(root->right, p, q);
    if(left != nullptr && right != nullptr)
    {
    return root;
    }
    else if(left != nullptr && right == nullptr)
    {
    return left;
    }
    else if(left == nullptr && right != nullptr)
    {
    return right;
    }
    else
    {
    return nullptr;
    }
    }
    TreeNode
    lowestCommonAncestor(TreeNode
    root, TreeNode
    p, TreeNode
    q)
    {
    return traversal(root, p ,q);
    }
    };

标签:right,TreeNode,val,nullptr,day15,root,left
From: https://www.cnblogs.com/pwangikun/p/18403482

相关文章

  • 【读书笔记-《30天自制操作系统》-14】Day15
    本篇内容开始讲解多任务。本篇内容结构很简单,先讲解任务切换的原理,再讲解任务切换的代码实践。但是涉及到的知识不少,理解上也有些难度。1.任务切换与多任务原理1.1多任务与任务切换所谓多任务,指的是操作系统同时运行多个任务。但是这种说法实际上是不准确的。如果只有......
  • day15JS-es6的基础语法
     1.严格模式1.1严格模式的使用方法使用方法1:"usestrict";开启严格模式。使用方法2:<scripttype="moaule"></script> 当设置script标签为模块化时,自动启用严格模式。 1.2严格模式的限制1. 要求变量不能重名。//报错"usestrict";vara=2;vara=4; 2.......
  • 代码随想录Day15
    110.平衡二叉树(优先掌握递归)给定一个二叉树,判断它是否是平衡二叉树平衡二叉树是指该树所有节点的左右子树的深度相差不超过1。示例1:输入:root=[3,9,20,null,null,15,7]输出:true示例2:输入:root=[1,2,2,3,3,null,null,4,4]输出:false示例3:输入:root=[]输出:t......
  • 集合的工具类:Collections day15
    packagecom.shujia.day15;importjava.util.ArrayList;importjava.util.Collections;importjava.util.List;/*java提供了专门操作集合的工具类:Collections静态成员方法:publicstatic<T>voidsort(List<T>list)对List集合进行升序......
  • 异常以及处理方案 day15
    /*异常:java程序编译或者运行时遇到的错误java中的异常分为3种:Throwable:Error:错误Exception:编译时期异常RuntimeException(运行时期异常)举例,该例子仅上课使用,如现实生活遇到,概不负责。魏一民想要去大蜀山,......
  • HashMap和Hashtable的区别 day15
    /*Map:存储元素的特点是每一个元素是一个键值对{【name:"魏一民"】,【age:18】}Map集合的共同拥有的特点:1、Map集合中的元素,键是唯一的,不会在一个Map集合发现两个相同的键1001:魏一民1002:陈真1001:小虎2......
  • 实训日记day15
    shell脚本概念作为计算机语言来理解可以认为它是操作系统的外壳。可以通过shell命令来操作和控制操作系统,比如Linux中的shell命令就包括ls、cd、pwd等等。shell在内核的基础上编写的一个应用程序,它连接了用户和Linux内核,从而让用户能够更加便捷、高效、......
  • Day15 二叉树Part2 初见回溯(二叉树相关)
    任务110.平衡二叉树给定一个二叉树,判断它是否是平衡二叉树思路典型的树形DP,每个节点向它的左右孩子收集信息,然后利用收集到的信息判断当前节点,最后再将信息传给上层。对于本题,每个节点要判断以自己为根的树是否是平衡二叉树,需要判断3个条件:自己的左子树是否平衡自己的右子......
  • 代码随想录day15 平衡二叉树 | 二叉树的所有路径 | 左叶子之和 | 完全二叉树的节点个
    平衡二叉树平衡二叉树解题思路二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数。二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数。这道题由于需要求节点的高度差来进行判断,因此我们需要用后序遍历,先左右,后中间。推荐使用递归把每个节点的高度算出来......
  • Oracle day15
    /*createtablef0307(idnumber,productnamevarchar2(100),parentidnumber);insertintof0307values(1,'汽车',null);insertintof0307values(2,'车身',1);insertintof0307values(3,'发动机',1);insertintof0307values(4......