当前位置: 首页 > 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实践
  • 【技术性】Search知识
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • css布局,左右固定中间自适应实现
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Java基本数据类型之Number
  • jdbc就是这么简单
  • Object.assign方法不能实现深复制
  • Python - 闭包Closure
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • React Transition Group -- Transition 组件
  • Redis中的lru算法实现
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 百度地图API标注+时间轴组件
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 面试遇到的一些题
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • $L^p$ 调和函数恒为零
  • (10)ATF MMU转换表
  • (C语言)字符分类函数
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (十六)串口UART
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • ***监测系统的构建(chkrootkit )
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .net 7和core版 SignalR
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET 使用 XPath 来读写 XML 文件
  • .NET/C#⾯试题汇总系列:⾯向对象
  • .Net程序帮助文档制作
  • .net反编译的九款神器
  • ::前边啥也没有
  • @angular/cli项目构建--Dynamic.Form
  • @synthesize和@dynamic分别有什么作用?
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析
  • [AI Google] 使用 Gemini 取得更多成就:试用 1.5 Pro 和更多智能功能
  • [Android] 240204批量生成联系人,短信,通话记录的APK