码迷,mamicode.com
首页 > 编程语言 > 详细

两个排序链表的合并(Easy)

时间:2019-04-10 23:47:42      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:函数实现   tps   运行   节点   遍历   png   结果   public   情况下   

问题来源:选自leetcode 21:合并两个有序链表

问题描述: 

技术图片

题目给定信息:

  给定两个有序链表,把两个链表合并成一个链表,并且合并后的链表依然是有序的。这两个链表中允许有重复元素

问题分析:

  设置一个临时头节点,同时遍历两个原链表,遍历循环的条件是两个链表都不为空的情况下循环才能继续执行。每次遍历两个链表的节点都要比较两个节点的大小,然后把较小的哪一个节点保存在新建临时头节点所表示链表中。但我们要考虑一些特殊的情况,两个链表长度不一样的时候,当循环推出时候还会有一个链表没有遍历结束,这时候我们要判断是哪一个,然后把没有遍历完的链表直接放在新链表的后面即可。

函数实现:

 1 public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
 2         ListNode newHead = new ListNode(-1);
 3         ListNode pre = newHead;
 4         while(l1!=null&&l2!=null) {
 5             if(l1.val<=l2.val) {
 6                 pre.next = l1;
 7                 l1 = l1.next;
 8             }else {
 9                 pre.next = l2;
10                 l2 = l2.next;
11             }
12             pre = pre.next;
13         }
14         if(l1!=null) {
15             pre.next = l1;
16         }
17         if(l2!= null) {
18             pre.next = l2;
19         }
20         return newHead.next;
21     }

运行结果:

技术图片

 

两个排序链表的合并(Easy)

标签:函数实现   tps   运行   节点   遍历   png   结果   public   情况下   

原文地址:https://www.cnblogs.com/BaoZiY/p/10685169.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!