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.
题意:合并两个已经排序好的链表。代码:
/**
* 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) {
if(l1 == null)
return l2;
if(l2 == null)
return l1;
ListNode l,p = l1, q = l2, r, s;
if(p.val <= q.val)
{
l = new ListNode(p.val);
p = p.next;
}
else
{
l = new ListNode(q.val);
q = q.next;
}
r = l;
while(p != null && q != null)
{
if(p.val <= q.val)
{
s = new ListNode(p.val);
r.next = s;
r = s;
p = p.next;
}
else
{
s = new ListNode(q.val);
r.next = s;
r = s;
q = q.next;
}
}
while(p != null)
{
s = new ListNode(p.val);
r.next = s;
r = s;
p = p.next;
}
while(q != null)
{
s = new ListNode(q.val);
r.next = s;
r = s;
q = q.next;
}
return l;
}
}