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

剑指Offer-合并两个排序的链表

题目描述:

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

 

思路:

1.判断两个链表是否为空,若其中一个链表为空,则直接返回另一个链表。

2.新建一个节点作为合并后的链表头部,最后返回时需要返回该头部的下一个节点。

3.当两个链表均不为空时,按照数字大小依次插入到新链表中。

4.当其中一个链表为空时,将另一个链表的后续元素全部插入到新链表中。

 

代码:

 1 /*
 2 struct ListNode {
 3     int val;
 4     struct ListNode *next;
 5     ListNode(int x) :
 6             val(x), next(NULL) {
 7     }
 8 };*/
 9 class Solution {
10 public:
11     ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
12     {
13         if(pHead1 == NULL)
14             return pHead2;
15         
16         if(pHead2 == NULL)
17             return pHead1;
18         
19         ListNode *newhead = new ListNode(0);
20         ListNode *current = newhead;
21         while(pHead1 != NULL && pHead2 != NULL){
22             if(pHead1 -> val <= pHead2 ->val){
23                 current->next = pHead1;
24                 current = current->next;
25                 pHead1 = pHead1->next;
26             }else{
27                 current->next = pHead2;
28                 current = current->next;
29                 pHead2 = pHead2->next;
30             }
31         }
32         if(pHead1 != NULL){
33             current -> next = pHead1;
34         }else if(pHead2 != NULL){
35             current ->next = pHead2;
36         }
37         return newhead->next;
38     }
39 };

 

转载于:https://www.cnblogs.com/sindy/p/7381711.html

相关文章:

  • 日省吾身
  • mongodb聚合的使用
  • 单例模式Singleton
  • 随机打乱数组
  • 敏捷软件开发模型Scrum通俗讲义
  • kafka基本原理概述——patition与replication分配
  • Eclipse快捷键大全
  • IDA*算法——骑士精神
  • cygwin的安装若干问题
  • bfs
  • Anaconda使用(转载)
  • stl vector源码剖析
  • 【Android Dev Guide - 04】 - Media - 学习使用MediaPlayer播放音乐
  • android开发学习之路——连连看之游戏界面(一)
  • 安装GoldenGate错误OGG-01756
  • [译]Python中的类属性与实例属性的区别
  • Android 控件背景颜色处理
  • CSS 提示工具(Tooltip)
  • JavaScript异步流程控制的前世今生
  • leetcode386. Lexicographical Numbers
  • magento2项目上线注意事项
  • passportjs 源码分析
  • SpiderData 2019年2月25日 DApp数据排行榜
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • vue 个人积累(使用工具,组件)
  • 大快搜索数据爬虫技术实例安装教学篇
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 后端_ThinkPHP5
  • 回流、重绘及其优化
  • 区块链共识机制优缺点对比都是什么
  • 让你的分享飞起来——极光推出社会化分享组件
  • 使用 @font-face
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 我感觉这是史上最牛的防sql注入方法类
  • 中文输入法与React文本输入框的问题与解决方案
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 回归生活:清理微信公众号
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #include到底该写在哪
  • $refs 、$nextTic、动态组件、name的使用
  • (6)设计一个TimeMap
  • (javascript)再说document.body.scrollTop的使用问题
  • (二)PySpark3:SparkSQL编程
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (三)模仿学习-Action数据的模仿
  • (十六)串口UART
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • .md即markdown文件的基本常用编写语法
  • .NET 8.0 发布到 IIS
  • .net FrameWork简介,数组,枚举
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .NET/C# 使窗口永不获得焦点
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)