剑指offer:合并两个排序的链表
题目描述:
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
解题思路:
这道题应该考察也是链表的相关操作。具体实现,新建一个新的链表,用两个指针分别指向两个链表,每次都比较两个指针指向的值,取小的加入新链表,同时当前指针后移一位。循环结束的条件为任意一个链表为空,即停止。最后做一个判断,新链表指向还没为空的单调递增链表。
代码:
/*
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 == nullptr)
return pHead2;
if(pHead2 == nullptr)
return pHead1;
ListNode* new_pHead, *cur1=pHead1, *cur2=pHead2, *tmp;
if(pHead1->val < pHead2->val)
{
new_pHead = pHead1;
cur1 = cur1->next;
}
else
{
new_pHead = pHead2;
cur2 = cur2->next;
}
tmp = new_pHead;
while(cur1!=nullptr && cur2!=nullptr)
{
if(cur1->val < cur2->val)
{
tmp->next = cur1;
cur1= cur1->next;
}
else
{
tmp->next = cur2;
cur2 = cur2->next;
}
tmp = tmp->next;
}
if(cur1==nullptr)
tmp->next = cur2;
else if(cur2==nullptr)
tmp->next = cur1;
else
tmp->next = nullptr;
return new_pHead;
}
};
剑指offer:合并两个排序的链表的更多相关文章
- 剑指offer——合并两个排序的链表——对象、引用和赋值初接触
题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然,我们需要合成后的链表满足单调不减规则. 先公布结果: /* public class ListNode { int val; List ...
- 剑指Offer——合并两个排序的链表
题目描述: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 分析: 苦力活,使用两个指针分别指向未被合并的两个链表的首部,比较两个首部数值的大小,合并数值 ...
- python剑指offer 合并两个排序的链表
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. # -*- coding:utf-8 -*- # class ListNode: # def _ ...
- 剑指Offer 合并两个排序的链表
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 思路: 用2个新节点,一个用来存放新链表的头节点,另一个用来移动.当p1,p2有一个到尾部的 ...
- 用js刷剑指offer(合并两个排序的链表)
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 牛客网链接 js代码 /*function ListNode(x){ this.val = x; ...
- 剑指OFFER——合并两个有序的链表
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 再做这道题就是想不起来书上怎么做的了,但是最近看STL里面全是这种基础的合并啊,比较啊.就算不会也看会了. ...
- 剑指offer--23.合并两个排序的链表
时间限制:1秒 空间限制:32768K 热度指数:421239 本题知识点: 链表 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. class ...
- 剑指offer17 合并两个排序的链表
错误代码: 最后两个if语句的目的是,最后一次迭代,两个链表中剩下的直接连接最后一次比较的数值,同时也是迭代停止的标志.虽然大if语句中比较大小得到的Node是正确的值,但每次迭代只要pHead2不为 ...
- 剑指Offer-16.合并两个排序的链表(C++/Java)
题目: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 分析: 可以用一个新的节点,来去比较两个单调递增的链表当前节点的值,如果p1当前的值小于p2,则新 ...
- 《剑指offer》 合并两个排序的链表
本题来自<剑指offer> 合并两个排序的链表 题目: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 思路: A:采用递归的方式(C++ C ...
随机推荐
- 金三银四求职季,前端面试题小梳理(HTML、CSS、JS)
好久没写学习记录,最近太多事,又到一年求职季,都说金三银四求职季,自己也做一下最近学习的一些前端面试题梳理,还是个小白,写的不对请指正,不胜感激. HTML篇 html语义化 用语义化的代码标签书写, ...
- jQuery事件整合
一.jQuery事件 1.focus()元素获得焦点 2.blur()元素失去焦点 3.change() 表单元素的值发生变化(可用于验证用户名是否存在) 4.click() 鼠标单击 5.dbcli ...
- 部署weblogic遇到的问题总结
myeclipse开发的项目,运行在tomcat7上完全正常.部署到weblogic10上就出现了问题,现把问题记录一下: 1.找不到javax/servlet/jsp/jstl/core/Condi ...
- 死磕nginx系列--配置文档解读
nginx配置文件主要分为四个部分: main(全局设置) http ( ) upstream(负载均衡服务器设置) server(主机设置) location(URL匹配特点位置的设置) serve ...
- oracle kill 锁
select object_name as 对象名称,s.sid,s.serial#,p.spid as 系统进程号 from v$locked_object l , dba_objects o , ...
- JS编写简单的弹窗插件(含有demo和源码)
最近项目做完了 事情不是很多,今天正好也在调休,所以趁着这个时间研究了一下简易的JS弹窗功能,当然网上这块插件非常多,本人也没有仔细看网上的插件源码 只是凭着日常使用过的弹窗插件有这么多功能 来实现自 ...
- 编写陈旭,实现通过字符型变量创建boolean值,再将其转换为字符串输出,观察输出后的字符串与创建Boolean对象时给定的参数是否相等.
主要涉及到基本数据类型与包装类的转换. Boolean类的tostring方法的作用,返回一个表示该布尔值的 String 对象 public class Test1 { public static ...
- QT 用listveiw显示图片
很多的时候需要浏览图片,一般会使用listview 显示图片,接下来我用listview显示图片 代码如下: QStandardItem * s1; QStandardItem * s2; QStan ...
- CentOS7下双网卡iptables端口转发规则
1. 拓扑图 10.1.1.173(内网目标) <-------- 10.1.1.207(内网网关)+172.16.5.100(外网入口) <----------- 172.16.6. ...
- 参照示例搭建一个Quertz + Topshelf的一个作业调度服务(基础)
学习网址:Quartz.NET 入门.使用Topshelf创建Windows服务 来自七七资料 1.直接下载源码 2.配置完成后,安装服务测试应用. 以下是遇到情况和加入的一些内容 1.在进行服务安装 ...