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
|
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; }}
|