
剑指offer之面试题25:合并两个排序的链表
发布日期:2021-05-07 00:01:38
浏览次数:27
分类:精选文章
本文共 1462 字,大约阅读时间需要 4 分钟。
面试题25:合并两个排序的链表
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。例如下图所示。
- 建立一个空的头节点,作为新的链表。
- 比较两个链表的第一个节点的值,较较小者插入到新链表中。
- 重复 2 的操作,直到一条链表为空。
- 将另一条不空的链表插入到新链表之后。
代码实现:
package Question25;public class T01 { public static void main(String[] args) { Node node1 = new Node(1); Node node2 = new Node(2); Node node3 = new Node(3); Node node4 = new Node(4); node1.next = node4; node2.next = node3; Node result = solve(node1, node2); while(result != null) { System.out.println(result); result = result.next; } } public static Node solve(Node head1, Node head2) { Node dummy = new Node(0); Node t_dummy = dummy; Node cur1 = head1, cur2 = head2; while(cur1 != null && cur2 != null) { if(cur1.value < cur2.value) { t_dummy.next = cur1; t_dummy = t_dummy.next; cur1 = cur1.next; } else { t_dummy.next = cur2; t_dummy = t_dummy.next; cur2 = cur2.next; } } if(cur1 != null) t_dummy.next = cur1; if(cur2 != null) t_dummy.next = cur2; return dummy.next; }}class Node{ int value; Node next; public Node(int value) { this.value = value; } @Override public String toString() { return "Node{" + "value=" + value + '}'; }}
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年03月29日 06时37分14秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
一文详解 Java 并发模型
2019-03-06
值类型与引用类型(中)
2019-03-06
MSSQL 2005 数据库变成可疑状态
2019-03-06
QBlog V2.5 源码开放下载(ASP.NET 番外系列之开端)
2019-03-06
秋色园引发CPU百分百命案的事件分析与总结
2019-03-06
安装jdk并配置环境变量
2019-03-06
稀疏数组
2019-03-06
js的严格模式
2019-03-06
idea的安装和无限期试用
2019-03-06
Oracle VM VirtualBox安装PVE虚拟机
2019-03-06
【转】如何用css限制文字长度,使溢出的内容用省略号…显示
2019-03-06
Android MediaPlayer setDataSource failed
2019-03-06
ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路
2019-03-06
【nodejs原理&源码杂记(8)】Timer模块与基于二叉堆的定时器
2019-03-06
大前端的自动化工厂(1)——Yeoman
2019-03-06
数据仓库建模方法论
2019-03-06
虚拟机搭建hadoop环境
2019-03-06
DataStax Bulk Loader教程(四)
2019-03-06
.NET应用框架架构设计实践 - 概述
2019-03-06