当前位置: 首页 > 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实践
  • Date型的使用
  • Java深入 - 深入理解Java集合
  • Laravel Mix运行时关于es2015报错解决方案
  • Rancher-k8s加速安装文档
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • Vue小说阅读器(仿追书神器)
  • 关于List、List?、ListObject的区别
  • 基于组件的设计工作流与界面抽象
  • 聊聊flink的TableFactory
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 思否第一天
  • 王永庆:技术创新改变教育未来
  • 微服务核心架构梳理
  • elasticsearch-head插件安装
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • 正则表达式-基础知识Review
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #100天计划# 2013年9月29日
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (1) caustics\
  • (MATLAB)第五章-矩阵运算
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (第一天)包装对象、作用域、创建对象
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (转)http协议
  • .axf 转化 .bin文件 的方法
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET 分布式技术比较
  • .netcore如何运行环境安装到Linux服务器
  • .net生成的类,跨工程调用显示注释
  • /etc/fstab和/etc/mtab的区别
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • [ C++ ] 类和对象( 下 )
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [] 与 [[]], -gt 与 > 的比较