前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >合并两个排序链表

合并两个排序链表

作者头像
一份执着✘
发布2018-06-04 16:23:29
1.5K0
发布2018-06-04 16:23:29
举报
文章被收录于专栏:赵俊的Java专栏赵俊的Java专栏

题意

将两个排序链表合并为一个新的排序链表

样例

给出 1->3->8->11->15->null2->null, 返回 1->2->3->8->11->15->null

思路

这道题很简单,属于链表的基本操作。 只需要创建一个新的链表与一个指向新链表最后一个节点的指针即可。 当 l1l2 均不为空的情况下,判断 l1l2的大小,把较小值放进新链表的最后一个节点,然后将较小值所处的链表向后移一位,以判断下一个数。 依次循环,直到 l1l2 中有一方为空时,将为空的一方,直接加到新链表后即可。

代码实现

代码语言:javascript
复制
/**
 * Definition for ListNode.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int val) {
 *         this.val = val;
 *         this.next = null;
 *     }
 * }
 */ 
public class Solution {
    /**
     * @param ListNode l1 is the head of the linked list
     * @param ListNode l2 is the head of the linked list
     * @return: ListNode head of linked list
     */
	public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
		ListNode listNode = new ListNode(0);
		ListNode lastNode = listNode;
		while (l1 != null && l2 != null) {
			if (l1.val > l2.val) {
				lastNode.next = l2;
				l2 = l2.next;
			} else {
				lastNode.next = l1;
				l1 = l1.next;
			}
			lastNode = lastNode.next;
		}

		if (l1 == null)
			lastNode.next = l2;

		if (l2 == null) {
			lastNode.next = l1;
		}

		return listNode.next;
	}
}

原题地址

LintCode:合并两个排序链表

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-07-142,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题意
  • 样例
  • 思路
  • 代码实现
  • 原题地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档