你的位置:首页 > Java教程

[Java教程]21. Merge Two Sorted Lists


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.

代码如下:

 1 /** 2  * Definition for singly-linked list. 3  * public class ListNode { 4  *   int val; 5  *   ListNode next; 6  *   ListNode(int x) { val = x; } 7  * } 8 */ 9 public class Solution {10   public ListNode mergeTwoLists(ListNode l1, ListNode l2) {11     if(l1==null&&l2==null)12     return null;13     if(l1==null&&l2!=null)14     return l2;15     if(l1!=null&&l2==null)16     return l1;17     18     ListNode head=l1.val<=l2.val?l1:l2;19     ListNode p=head;20     if(head==l1)21     l1=l1.next;22     else if(head==l2)23     l2=l2.next;24     25     while(l1!=null&&l2!=null)26     {27       head.next=l1.val<=l2.val?l1:l2;28     if(head.next==l1)29     l1=l1.next;30     else if(head.next==l2)31     l2=l2.next;32     head=head.next;33     }34     35     if(l1==null&&l2==null)36     head.next=null;37     if(l2!=null)38     head.next=l2;39     if(l1!=null)40     head.next=l1;41     42     return p;43   }44 }