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.
合并有序链表,为避免对head进行讨论,建立一个空head,返回的时候返回head.next,建立空head之后进行排序添加node,最后当某一条链表为空的时候将另一条链表接上。
/**
* 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 p=l1,q=l2,head=new ListNode(0),r;
if(q==null)return p;
if(p==null)return q;
r=head;
while(p!=null && q!=null)
{
if(p.val<q.val)
{
r.next=p;
r=p;
p=p.next;
}
else
{
r.next=q;
r=q;
q=q.next;
}
}
if(p!=null)r.next=p;
if(q!=null)r.next=q;
return head.next;
}
}