心得:链表问题加头指针,头指针要加一个引用(两个引用:一个用来遍历,另一个输出头节点,注意head.next)
输出完要将后面没有添加上的节点添加上。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if(l1==null)
return l2;
if(l2==null)
return l1;
ListNode head=new ListNode(-1);
ListNode tmp=head;
while(l1!=null&&l2!=null)
{
if(l1.val<=l2.val)
{
tmp.next=l1;
tmp=tmp.next;
l1=l1.next;
}
else
{
tmp.next=l2;
tmp=tmp.next;
l2=l2.next;
}
}
while(l1!=null) ///将剩余的添加上
{
tmp.next=l1;
tmp=tmp.next;
l1=l1.next;
}
while(l2!=null) 将剩余的添加上
{
tmp.next=l2;
tmp=tmp.next;
l2=l2.next;
}
return head.next;
}
}
代码: