LeetCode 671.二叉树第二小的结点

在这里插入图片描述
这个题我们可以用数组辅助完成,然后进行排序后,再用再进行取值,这是我的代码块:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/void Preorder_trave(struct TreeNode* root,int* number,int* length){if(root == NULL)return;number[(*length)++] = root->val;Preorder_trave(root->left,number,length);Preorder_trave(root->right,number,length);}int compare(const void* a,const void* b){return *(int*)a - *(int*)b;}
int findSecondMinimumValue(struct TreeNode* root) {//创立数组int* number = (int*)malloc(sizeof(int) * 25);//创立数组长度int* length = (int*)malloc(sizeof(int));*length = 0;//使用前序遍历,把结点存入数组中Preorder_trave(root,number,length);int judge = number[0];int k = 0;int i = 0;//判断每个结点是否相同for(i = 0;i < *length;i++){if(number[i] == judge)k++;}if(k == *length)return -1;//进行qsort排序qsort(number,*length,sizeof(int),compare);//取第二个最小的值for(i = 0;i < *length - 1;i++){if(number[i] != number[i + 1])break;}return number[i + 1];
}

我这个方法比较通俗易懂,但时间复杂度比较高,大家如果觉得好的话,就请给个免费的赞吧!谢谢了^ _ ^

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/32930.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【07】持久化-数据库选择和设计

1. 数据库选择 在比特币原始论文中,并没有提到要使用哪一个具体的数据库,它完全取决于开发者如何选择。Bitcoin Core ,最初由中本聪发布,现在是比特币的一个参考实现,它使用的是 LevelDB。 我们将要使用的是BoltDB。Bolt DB是一个纯键值存储的 Go 数据库。没有具体的数据…

上海市计算机学会竞赛平台2023年9月月赛丙组分形扩张

题目描述 一开始&#xff0c;你只有一个数字&#x1d460;s&#xff0c;&#x1d460;s 只可能为 00 或 11。接下来&#xff0c;你需要将这个数字扩张 &#x1d45b;n 轮&#xff0c;最后变成一个 2&#x1d45b;2&#x1d45b;2n2n 的矩阵&#xff0c;每轮的扩张规则如下&…

uniapp scroll-view 虚拟滚动【适合每条数据高度一致】

基本原理 有一万条数据&#xff0c;我们按10条一页来进行分组&#xff0c;会有1000页页面滚动到第10页的位置的时候&#xff0c;10页之后和10页之前是不用被显示的&#xff0c;可以直接隐藏掉如果是数据删除&#xff0c;页面会不流畅&#xff0c;会卡顿一下&#xff0c;且滚动位…

vue-cli搭建

一、vue-cli是什么&#xff1f; vue-cli 官方提供的一个脚手架&#xff0c;用于快速生成一个 vue 的项目模板&#xff1b;预先定义 好的目录结构及基础代码&#xff0c;就好比咱们在创建 Maven 项目时可以选择创建一个 骨架项目&#xff0c;这个骨架项目就是脚手架&#xff0c;…

一个使用Python和假设的天气API来获取和展示天气数据的简单脚本示例

要使用Python编写一个天气预测的脚本&#xff0c;我们通常需要依赖于现有的天气API来获取实时或历史天气数据&#xff0c;并且结合机器学习或统计模型来进行预测。然而&#xff0c;由于天气预测是一个复杂的任务&#xff0c;通常需要大量的计算资源和专业的气象知识&#xff0c…

QT事件处理系统之二:窗口部件的事件拦截,以及事件的传递顺序

1、案例说明 在父窗口中为selfLineEdit窗口安装事件过滤器,这样我们可以在父窗口中首先拦截来自于selfLineEdit本身产生的事件,并且决定该事件最终是否继续传递到selfLineEdit窗口本身。 2、关键代码 selfLineEdit.cpp #include "selfLineEdit.h" #include &l…

ECM和MEMS技术在心肺声学监测中的应用

心肺疾病是全球范围内导致死亡的主要原因。因此&#xff0c;对这些疾病迹象的准确和快速评估对于为患者提供适当的医疗保健至关重要。心血管疾病最重要的迹象之一是心脏周期的异常。大多数呼吸系统疾病则表现为呼吸周期的异常。有多种方法可以监测心脏和肺部的周期。听诊是监测…

pytest测试框架pytest-xdist插件并发执行测试用例

Pytest提供了丰富的插件来扩展其功能&#xff0c;本章介绍下插件pytest-xdist&#xff0c;主要是提供并行测试、分布式测试、循环测试等功能&#xff0c;可以加快测试速度。 pytest-xdist官方显示没有严格的python和pytest版本限制。 pytest-xdist安装 使用pip命令安装: pip…

java内置线程池

线程池常见方法 如何获取线程池对象 缓存线程池 自定义任务对象 public class MyRunnable implements Runnable{private int id;public MyRunnable(int id) {this.id id;}Overridepublic void run() {String name Thread.currentThread().getName();System.out.println(&quo…

DWG转PDF字体研究记录

1.前言 最近需要对PDF中的符合业务规则的文字进行提取&#xff0c;发现有些文字不是文字信息形式存储&#xff0c;而是polyline形式表达&#xff0c;意味着仅仅有形体上的表达&#xff0c;丢失了原本的文字信息。 经过沟通得知&#xff0c;这些PDF是AutoCAD软件导出的&#xf…

Linux 特殊变量 $?

一. 说明 在 Linux 和其他类 Unix 系统中&#xff0c;$? 是一个特殊的变量&#xff0c;用于获取上一个命令的退出状态码。 退出状态码是一个整数值&#xff0c;通常用来表示命令的执行结果。 ⏹退出状态码的含义 0&#xff1a;命令成功执行。0以外的数字&#xff1a;命令执…

STM32 串口通讯

使用STM32的串口通讯&#xff0c;接收串口助手的数据&#xff0c;并且将接收到的数据返回串口&#xff0c;重定义printf功能。 配置引脚信息 由于每次新建工程都需要配置信息&#xff0c;比较麻烦&#xff0c;好在STM32CubeIDE提供了导入.ioc文件的功能&#xff0c;可以帮我们…

c++string的常见函数

因为刷leetcode会需要用到一些c已经实现的函数功能&#xff0c;所以在此记录&#xff0c;以便复习巩固。 参考文章连接&#xff1a; C中string类型的erase()函数详解 C string类的insert函数的介绍及使用 string的erase函数() 1 删除指定位置的字符 通过迭代器来删除指定字符…

华为Mate 70系列,将首发搭载纯血鸿蒙正式版,第四季度登场

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 更多资源欢迎关注 6月22日消息&#xff0c;华为在HDC 2024上已经宣布&#xff0c;HarmonyOS NEXT开启开发者先锋用户Beta测试。 首批覆盖Mate 60系列、Mate X5系列、MatePad Pro 13.2英寸。 根据官方公布的时间表&…

模板的概念及其在C++中的应用

模板是C中一个强大的特性&#xff0c;它允许程序员定义与类型无关的函数或类&#xff0c;从而在编译时根据具体类型生成特定的代码。模板的出现极大地提高了C代码的可重用性和灵活性。 模板的概念 模板是C实现泛型编程的一种工具。泛型编程是一种编程范式&#xff0c;其中算法…

线程简介及其函数使用实例(gcc *.c -lpthread)

1.概念 线程&#xff08;LWP(Light Weight process)&#xff09; 线程是轻量级的进程&#xff0c;&#xff08;是比进程粒度更小的执行单元&#xff09;进程是分配资源的最小单位&#xff08;0-3G&#xff09;&#xff08;PS&#xff1a;一辆马车8匹马 进程 其中的一个马是线程…

Sublime Text for Mac v4.0 【注册汉化版】代码编辑器(保姆级教程,简单易懂,轻松上手)

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、Sublime Text 安装出现“软件已损坏&#xff0c;无法打开。要移到废纸篓”问题&#xff0c;解决办法&#xff1a; 2、汉化补丁安装3、输入注册码4、查询使用期限 安装完成&#xff01;&#xff01;&#xff01; 效果 一、下…

【牛客深信服总结】

1.反转链表 2.协议 交换机路由器 3.手写代码&#xff0c;一个二叉树&#xff0c;从根节点到叶子结点算一条路径&#xff0c;打印出所有路径。 4.一些数据结构相关的问题&#xff0c;包括栈和队列的应用&#xff0c;链表和数组的区别&#xff0c;最大堆和最小堆&#xff0c;动态…

OpenCV机器学习-人脸识别

一 基本概念 1 计算机视觉与机器学习的关系 计算机视觉是机器学习的一种应用&#xff0c;而且是最有价的应用。 2 人脸识别 哈尔(haar)级联方法 Harr是专门为解决人脸识别而推出的&#xff1b; 在深度学习还不流行时&#xff0c;Harr已可以商用&#xff1b; 深度学习方法&am…

示例:WPF中如何绑定ContextMenu和Menu

一、目的&#xff1a;开发过程中&#xff0c;有些模块的右键ContextMenu菜单是需要动态显示的&#xff0c;既是根据不同条件显示不同的菜单&#xff0c;很多是通过代码去生成ContextMenu的MenuItem&#xff0c;本文介绍通过绑定的方式去加载ContextMenu&#xff0c;Menu菜单栏的…