博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《剑指 Offer》——16、合并两个排序的链表
阅读量:2344 次
发布时间:2019-05-10

本文共 1093 字,大约阅读时间需要 3 分钟。

1. 本题知识点

链表

2. 题目描述

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

在这里插入图片描述

3. 解题思路

创建一个新链表,每次比较输入的两个链表,将其中值较小的结点用尾插法插入新链表,最后返回新链表。

4. 代码

public class ListNode {
int val; ListNode next = null; ListNode(int val) {
this.val = val; }}
public class Solution {
/** * 输入两个单调递增的链表,输出两个链表合成后的链表, * 当然我们需要合成后的链表满足单调不减规则。 * @param list1 * @param list2 * @return */ public static ListNode Merge(ListNode list1, ListNode list2) {
// 新链表的头结点 ListNode head = new ListNode(-1); ListNode cur = head; // 每次比较输入的两个链表,将其中值较小的结点用尾插法插入新链表 while (list1 != null && list2 != null) {
if (list1.val <= list2.val) {
cur.next = list1; list1 = list1.next; } else {
cur.next = list2; list2 = list2.next; } cur = cur.next; } if (list1 == null) {
cur.next = list2; } if (list2 == null) {
cur.next = list1; } // 最后返回新链表 return head.next; }}

转载地址:http://kujvb.baihongyu.com/

你可能感兴趣的文章
顶级域名注册分布统计:2006年09月 .com .de .net .uk .cn
查看>>
雅虎通可以批量添加MSN用户了
查看>>
C/C++题目--拷贝构造函数概念
查看>>
C/C++题目--深复制与浅复制
查看>>
数据结构教程--李春葆版(总结)之线性表-顺序存储结构练习题
查看>>
linux gdb的详细用法 运行与断点
查看>>
删除vector中重复元素
查看>>
和为s的连续正数序列
查看>>
什么是Redis?什么是nosql?NoSQL数据库的四大分类
查看>>
为什么说Redis是单线程的以及Redis为什么这么快!
查看>>
redis的过期健删除策略以及内存淘汰机制
查看>>
Mysql几种索引类型的区别及适用情况
查看>>
判断一个数组,是否可以分成两个数组之和相等的数组
查看>>
背包问题
查看>>
结构体变量之间的比较和赋值原理
查看>>
Hadoop Hdfs 配置
查看>>
tsung集群测试
查看>>
oracle定时删除表空间的数据并释放表空间
查看>>
解决文件提示: /bin/ksh^M: bad interpreter: bad interpreter:No such file or directory
查看>>
ajaxanywhere jsp 使用
查看>>