一、题目描述

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

二、输入描述

两个递增排序的链表

三、输出描述

合并成一个递增排序的链表

四、牛客网提供的框架

/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* Merge(ListNode* pHead1, ListNode* 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 *head, *temp, *last; if(!pHead1) return pHead2;
if(!pHead2) return pHead1; if(pHead1->val <= pHead2->val)
{
temp = pHead1;
pHead1 = pHead1->next;
head = temp;
last = temp;
}
else
{
temp = pHead2;
pHead2 = pHead2->next;
head = temp;
last = temp;
} while(pHead1 && pHead2)
{
if(pHead1->val <= pHead2->val)
{
temp = pHead1;
pHead1 = pHead1->next;
last->next = temp;
last = temp;
}
else
{
temp = pHead2;
pHead2 = pHead2->next;
last->next = temp;
last = temp;
}
} if(pHead1) last->next = pHead1;
if(pHead2) last->next = pHead2; return head;
}
};

《剑指offer》合并两个排序的链表的更多相关文章

  1. 剑指offer——合并两个排序的链表——对象、引用和赋值初接触

    题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然,我们需要合成后的链表满足单调不减规则. 先公布结果: /* public class ListNode { int val; List ...

  2. 剑指Offer——合并两个排序的链表

    题目描述: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 分析: 苦力活,使用两个指针分别指向未被合并的两个链表的首部,比较两个首部数值的大小,合并数值 ...

  3. python剑指offer 合并两个排序的链表

    题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. # -*- coding:utf-8 -*- # class ListNode: # def _ ...

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

    题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则.   思路: 用2个新节点,一个用来存放新链表的头节点,另一个用来移动.当p1,p2有一个到尾部的 ...

  5. 用js刷剑指offer(合并两个排序的链表)

    题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 牛客网链接 js代码 /*function ListNode(x){ this.val = x; ...

  6. 剑指OFFER——合并两个有序的链表

    输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 再做这道题就是想不起来书上怎么做的了,但是最近看STL里面全是这种基础的合并啊,比较啊.就算不会也看会了. ...

  7. 剑指offer--23.合并两个排序的链表

    时间限制:1秒 空间限制:32768K 热度指数:421239 本题知识点: 链表 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. class ...

  8. 剑指offer17 合并两个排序的链表

    错误代码: 最后两个if语句的目的是,最后一次迭代,两个链表中剩下的直接连接最后一次比较的数值,同时也是迭代停止的标志.虽然大if语句中比较大小得到的Node是正确的值,但每次迭代只要pHead2不为 ...

  9. 剑指Offer-16.合并两个排序的链表(C++/Java)

    题目: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 分析: 可以用一个新的节点,来去比较两个单调递增的链表当前节点的值,如果p1当前的值小于p2,则新 ...

  10. 《剑指offer》 合并两个排序的链表

    本题来自<剑指offer> 合并两个排序的链表 题目: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 思路: A:采用递归的方式(C++ C ...

随机推荐

  1. m_Orchestrate learning system---十三、thinkphp的验证器支持多语言么

    m_Orchestrate learning system---十三.thinkphp的验证器支持多语言么 一.总结 一句话总结:支持,不仅验证器支持,其它的插件应该都支持 不仅thinkphp支持多 ...

  2. [JZOJ 5875] [NOIP2018提高组模拟9.20] 听我说,海蜗牛 解题报告(BFS+二分)

    题目链接: http://172.16.0.132/senior/#main/show/5875 题目: 题解: 注意这题只能经过开放的港口 我们考虑用vector存下每个点不能到的点,并把并让vec ...

  3. Calender

    public static void main(String[] args) { // TODO 自动生成的方法存根 Calendar c = new GregorianCalendar(); c., ...

  4. 解决maven 无法下载java-memcached的依赖问题

    1.进入https://github.com/gwhalin/Memcached-Java-Client/downloads 下载java-memcached的jar包. 2.使用cmd进入maven ...

  5. intellij idea 15 for mac破解版(含注册码)下载

    转载 https://blog.csdn.net/dataiyangu/article/details/81163118

  6. json对象获取长度以及字符串和json对象的转换

    var arr = Object.keys(typeARR); var str = ''; var len = arr.length; for(var i = 0;i<len;i++){ str ...

  7. bzoj4551 [HEOI2016]树

    题目描述 在2016年,佳媛姐姐刚刚学习了树,非常开心.现在他想解决这样一个问题:给定一颗有根树(根为1),有以下 两种操作:1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记,其他结点均 ...

  8. 《Linux 进程间通信》命名管道:FIFO

    命名管道的主要用途:不相关的进程之间交换数据. 命令行上创建命名管道: $ mkfifo filename  程序中创建命名管道: #include <sys/types.h> #incl ...

  9. 紫书 例题8-19 UVa 12265 (扫描法+单调栈)

    首先可以用扫描法处理出一个height数组, 来保存从当前行开始, 每一个格子可以向上延伸的最大长度. 这种"延伸"的问题用扫描法, 因为往往这个时候可以利用前一次的结果来更新当前 ...

  10. [luogu]P4364 [九省联考2018]IIIDX

    题目背景 Osu 听过没?那是Konano 最喜欢的一款音乐游戏,而他的梦想就是有一天自己也能做个独特酷炫的音乐游戏.现在,他在世界知名游戏公司KONMAI 内工作,离他的梦想也越来越近了. 这款音乐 ...