当前位置: 首页 > news >正文

【每日刷题】Day61

【每日刷题】Day61

🥕个人主页:开敲🍉

🔥所属专栏:每日刷题🍍

🌼文章目录🌼

1. 671. 二叉树中第二小的节点 - 力扣(LeetCode)

2. 2331. 计算布尔二叉树的值 - 力扣(LeetCode)

3. LCR 149. 彩灯装饰记录 I - 力扣(LeetCode)

1. 671. 二叉树中第二小的节点 - 力扣(LeetCode)

//思路:层序遍历+排序。

int compare(const void* a,const void* b)

{

    return (*(int*)a-*(int*)b);

}

typedef struct listnode

{

    struct TreeNode* val;

    struct listnode* next;

}LN;

int findSecondMinimumValue(struct TreeNode* root)

{

//以下层序遍历代码

    int arr[26] = {0};

    int count = 0;

    LN* phead = (LN*)malloc(sizeof(LN));

    LN* ptail = phead;

    LN* node = (LN*)malloc(sizeof(LN));

    node->val = root;

    node->next = NULL;

    ptail->next = node;

    ptail = ptail->next;

    while(phead!=ptail)

    {

        struct TreeNode* tmp = phead->next->val;

        phead = phead->next;

        arr[count++] = tmp->val;

        if(tmp->left)

        {

            LN* node = (LN*)malloc(sizeof(LN));

            node->val = tmp->left;

            node->next = NULL;

            ptail->next = node;

            ptail = ptail->next;

        }

        if(tmp->right)

        {

            LN* node = (LN*)malloc(sizeof(LN));

            node->val = tmp->right;

            node->next = NULL;

            ptail->next = node;

            ptail = ptail->next;

        }

    }

//以上

//以下排序+查找

    qsort(arr,count,sizeof(int),compare);

    int ans = -1;

    for(int i = 1;i<count;i++)

    {

        if(arr[i]>arr[i-1])

        {

            ans = arr[i];

            break;

        }

    }

    return ans;

}

2. 2331. 计算布尔二叉树的值 - 力扣(LeetCode)

//思路:遍历二叉树,当遇到叶子结点时直接返回值,计算非叶子结点的值。

bool IsLeafNode(struct TreeNode* root)

{

    return !root->left&&!root->right;

}

bool _evaluateTree(struct TreeNode* root)

{

    if(IsLeafNode(root))//遇到叶子结点直接返回值

        return root->val;

    bool left = _evaluateTree(root->left);//因为叶子结点非0即1,因此就是非false即true,使用bool类型变量接收。

    bool right = _evaluateTree(root->right);

    if(root->val==2)

        root->val = left|right;//计算每个非叶子结点的值

    else

        root->val = left&right;

    return root->val;

}

bool evaluateTree(struct TreeNode* root)

{

    return _evaluateTree(root);

}

3. LCR 149. 彩灯装饰记录 I - 力扣(LeetCode)

//思路:层序遍历。这里的思路是用链表实现层序遍历。

typedef struct listnode

{

    struct TreeNode* val;

    struct listnode* next;

}LN;

int* decorateRecord(struct TreeNode* root, int* returnSize)

{

    int* ans = (int*)malloc(sizeof(int)*10001);

    int count = 0;

    LN* phead = (LN*)malloc(sizeof(LN));

    LN* ptail = phead;

    if(root)

    {

        LN* node = (LN*)malloc(sizeof(LN));

        node->val = root;

        node->next = NULL;

        ptail->next = node;

        ptail = ptail->next;

    }

    while(phead!=ptail)

    {

        struct TreeNode* tmp = phead->next->val;

        phead = phead->next;

        ans[count++] = tmp->val;

        if(tmp->left)

        {

            LN* node = (LN*)malloc(sizeof(LN));

            node->val = tmp->left;

            node->next = NULL;

            ptail->next = node;

            ptail = ptail->next;

        }

        if(tmp->right)

        {

            LN* node = (LN*)malloc(sizeof(LN));

            node->val = tmp->right;

            node->next = NULL;

            ptail->next = node;

            ptail = ptail->next;

        }

    }

    *returnSize = count;

    return ans;

}

相关文章:

  • bigtop-3.4.0-SNAPSHOT ubuntu22.04打包
  • [2024-06]-[大模型]-[Ollama] 0-相关命令
  • 系统架构设计师重难点知识脑图
  • 启明智显工业级HMI芯片Model3功耗特性分享
  • LabVIEW2017破解安装教程
  • vue2前置路由守卫中使用this.$store.state报错解决
  • Django前端页面-模板继承
  • opencv 在飞行堡垒8中调用camera导致设备消失
  • 纹理贴图必须要输入顶点坐标或纹理坐标吗
  • 如何免费获取云服务器
  • Vue09-事件处理
  • 【鸿蒙开发】HarmonyOS开发 URL动态路由设计
  • Mac环境下,简单反编译APK
  • 探索未来制造,BFT Robotics引领潮流
  • Flink SQL实践
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • eclipse的离线汉化
  • es6--symbol
  • isset在php5.6-和php7.0+的一些差异
  • Java编程基础24——递归练习
  • JAVA并发编程--1.基础概念
  • Python十分钟制作属于你自己的个性logo
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 分布式事物理论与实践
  • mysql面试题分组并合并列
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​低代码平台的核心价值与优势
  • #预处理和函数的对比以及条件编译
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (C++17) std算法之执行策略 execution
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (动态规划)5. 最长回文子串 java解决
  • (二)斐波那契Fabonacci函数
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (接口封装)
  • (区间dp) (经典例题) 石子合并
  • (十八)SpringBoot之发送QQ邮件
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • ***通过什么方式***网吧
  • .mysql secret在哪_MYSQL基本操作(上)
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .net Stream篇(六)
  • .NET 表达式计算:Expression Evaluator
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NetCore部署微服务(二)
  • .NET文档生成工具ADB使用图文教程
  • .net中我喜欢的两种验证码
  • /*在DataTable中更新、删除数据*/
  • :=
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • @angular/cli项目构建--Dynamic.Form
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...