剑指offer_C++_一天一题_16_合并两个排序的链表-程序员宅基地

技术标签: 刷题冲冲冲  

今日碎碎念: 好热啊蚊子真的好多

题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

解题分析
1.递归方法
处理极端情况后,其他的情况一层层递归开。
2.非递归方法
设立一个头结点,其他的谁小指谁,一次类推。

代码实现
方法一:递归方法

/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
class Solution {
    
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
    {
    
        if(!pHead1) return pHead2;
        if(!pHead2) return pHead1;
       
        int val1,val2;
        val1=pHead1->val;
        val2=pHead2->val;
        if(val1<=val2){
    
            pHead1->next = Merge(pHead1->next,pHead2);
            return pHead1;}
        else{
    
            pHead2->next = Merge(pHead1,pHead2->next);
            return pHead2;}
    }
};

方法二:非递归方法

/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
class Solution {
    
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
    {
    
        ListNode *vhead = new ListNode(-1);//设定虚拟头结点,也叫哨兵,前驱结点
        ListNode *result = vhead;
        int val1,val2;
        
        while(pHead1 and pHead2)
        {
    
            val1=pHead1->val;
            val2=pHead2->val;
            if(val1<=val2){
    result->next = pHead1;pHead1=pHead1->next;}
            else{
    result->next = pHead2;pHead2=pHead2->next;}
            result=result->next;
        }
        result->next = pHead1 ? pHead1 : pHead2;
        return vhead->next;
    }
};

结果
在这里插入图片描述
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40662074/article/details/106573232

智能推荐

微信小程序对接微信支付所遇问题合集-程序员宅基地

文章浏览阅读873次,点赞19次,收藏28次。后端使用会简单很多,可以看看在第五个大标题上。1. 以下所有问题均基于uniapp开发微信小程序。2. 所使用的工具版本为:1、微信开发者工具:稳定版2、uniapp工具:HBuilder X 3.99;3、后端程序语言:java;

OpenCV保存成XML(FileStorage)和CSV(重载<<运算符)文件_opencv保存灰度值到csv-程序员宅基地

文章浏览阅读8.5k次,点赞5次,收藏14次。XML文件(使用FileStorage类)使用OpenCV时不仅要保存影像结果,往往也需要保存中间的矩阵结果,而OpenCV的imwrite函数只支持CV8U类型的数据(使用OpenCV保存其他类型Mat的时候,程序不会报错,但是无法生成结果文件),因此会给工作带来很多不便。OpenCV在2.0以后的版本中提供了FileStorage类,供用户直接使用,保存为XML/YAML文件。保存XML保存示例_opencv保存灰度值到csv

Cygwin上安装openssl_cygwin 安装--enable-openssl-程序员宅基地

文章浏览阅读5.8k次。下面就是如何在cywin上安装openssl:_cygwin 安装--enable-openssl

navicat for mysql 传输数据失败_navicat数据传输不动了-程序员宅基地

文章浏览阅读5.1k次。本来是想将正式数据库通过navicat for mysql复制到本地的虚拟机上的mysql,结果总是只复制了一部分表就复制不了了,到后面索性连通过navicat for mysql打开数据库都打开不了了然后想着重启linux上的mysql:重启报错如下:查看mysql错误日志:查看报错的内容_navicat数据传输不动了

centos网络配置-程序员宅基地

文章浏览阅读1.8w次,点赞11次,收藏77次。一般来说,我们学习Centos都在VMware Workstation下进行,用这种方法安装Centos很容易在一台机器上建立你自己的网络,这样方便你的学习。如何在VMware Workstation下安装你的Centos在此就不复述了,你可以很容易找到安装方法,下面的内容都安排在上述环境下进行。将你的Centos虚拟机连上Internet有两种方式:对于网卡来说,我们要做的工作就是使用DHCP还是static方式配置IP地址。另一个就是配置DNS服务器的IP地址。第一节DHCP方式1.网桥模式联网 首_centos网络配置

串口通信数据格式_串口数据格式-程序员宅基地

文章浏览阅读1.6w次,点赞7次,收藏52次。在串行通信中,数据在1位宽的单条线路上进行传输,一个字节的数据要分为8次,由低位到高位按顺序一位一位的进行传送。串口收发数据的单位:字节 (Byte) '', 1Byte = 8 bits , 串口收发数据格式一般为 :1bit 起始位(一般为0) + 8bits 数据位(一字节) +1bit 校验位(可有可无) + 1bit结束位(一般为1)奇校验是指每帧数据中,包括数据位和奇偶校验位的全部9个位中1的个数必须为奇数; 偶校验是指每帧数据中,包括数据位和奇偶校验位的全部..._串口数据格式

随便推点

excel 调用barTender打印条码 VBA 调用BarTender打印标签BarTender二次开发 VBA 条码打印 VBA二维码打印 Excel条码打印 Excel二维码打印_bartender vba-程序员宅基地

文章浏览阅读1.1k次。excel 调用barTender打印条码 VBA 调用BarTender打印标签BarTender二次开发 VBA 条码打印 VBA二维码打印 Excel条码打印 Excel二维码打印​开发使用VBA,在Excel就可以开发,VBA的学习曲线相对较低,以下是VBA结合使用BarTender开发的条码打印功能源码可以看视频内容https://live.csdn.net/v/288537​_bartender vba

iOS 字典是否相等_ios 判断字典是否相等-程序员宅基地

文章浏览阅读5.6k次。OC 中字典是没有顺序的键值对,那么,如果两个字典 中存储的键值对是一样的,只是顺序不一样,那么他们两个是否相等呢?为了验证这个问题,我简单写了一下代码如下、结果是相等的,对于可变字典和不可变字典都是一样的。那么对于数组来说呢?通过同样的实验,我们得到数组是不相等的,集合是相等的。_ios 判断字典是否相等

Linux设置JAR开机自启_linux jar开机自启动-程序员宅基地

文章浏览阅读2.4k次,点赞3次,收藏7次。Jar 包就会在系统启动时自动启动了。您可以使用 sudo systemctl start jar-demo.service 命令手动启动该服务,并使用 sudo systemctl status jar-demo.service 命令检查其状态。记得将 jar-demo.service 替换为您实际创建的服务文件名_linux jar开机自启动

Activity中输入框EditText被键盘遮挡问题_activity 6 文字遮挡-程序员宅基地

文章浏览阅读775次。在项目开发过程中,一般app都有意见反馈这样的功能,布局中有很多文本框,布局底部存在一个提交按钮;用户在输入文本的时候,输入框经常被键盘遮挡,不能与键盘显示适配,很是头疼,我在网上找了很多方法,最后总结了一下,可以很好的解决这个问题。解决思路:当键盘显示的时候我们发现布局被键盘遮挡了一部分,这个时候我们根据可见区域的高度动态的去修改布局的高度以达到适配的效果。注意:内容布局最外层需要用Sc..._activity 6 文字遮挡

Unity&&C#学习笔记-反射-程序员宅基地

文章浏览阅读56次。每个类,我们的编译器都知道数据成员的偏移,函数代码段的位置,运行的时候,我们的C#系统会为我们每个类----》描述实例(数据内存);Type类型,Type实例,属于System名字空间;Type:一些类型的描述信息int type;//类型//这个字段的内存大小;int offset;//在内存对象中的内存偏移int type;//静态的还是,普通的;int offset;//函数代码指令的地址;l/当前类的实例的内存大小;//当前这个类的数据成员;

NPN和PNP 的电流方向 、大小关系 、电压偏置_pnp型3极管-程序员宅基地

文章浏览阅读10w+次,点赞157次,收藏720次。电流流向: NPN PNP它最主要的功能是电流 放大和开关作用。Emitter,Base,CollectorNPN管,集电极电流IC和基极电流IB流入管子。发射极电流IE流出管子。且IC+IB=IE。 Icb+Ibe=Ice 即βIbe+Ibe=IcePNP管,集电极电流IC和基极电流IB流出管子。发射极电流IE流入管子。同样IC+IB=IE。无论管子..._pnp型3极管

推荐文章

热门文章

相关标签