leetcode-21-merge-two-sorted-lists

Description

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

Example:

1
2
Input: 1->2->4, 1->3->4
Output: 1->1->2->3->4->4

思路

題意是用一個新鏈表來合並兩個已排序的鏈表,那我們只需要從頭開始比較已排序的兩個鏈表,新鏈表指針每次指向值小的節點,依次比較下去,最後,當其中壹個鏈表到達了末尾,我們只需要把新鏈表指針指向另一個沒有到末尾的鏈表此時的指針即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode head= new ListNode(0);
ListNode p = head;
while(l1!=null&&l2!=null){
if(l1.val<=l2.val){
p.next=l1;
l1=l1.next;
}else{
p.next=l2;
l2= l2.next;
}
p=p.next;
}
if(l1!=null){
p.next=l1;
}
if(l2!=null){
p.next=l2;
}
return head.next;
}}
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×