代码
public class Solution {
public ListNode MergeTwoLists(ListNode l1, ListNode l2) {
ListNode head,temp1=l1,temp2=l2,temp3;
if(l1==null&&l2==null)
return null;
else if(l1==null)return l2;
else if(l2==null)return l1;
else
{
if(l1.val<l2.val)
{
head=l1;
temp1=temp1.next;
}
else
{
head=l2;
temp2=temp2.next;
}
}
temp3=head;
while(temp1!=null||temp2!=null)
{
if(temp1==null)
{
temp3.next=temp2;
temp2=temp2.next;
}
else if(temp2==null)
{
temp3.next=temp1;
temp1=temp1.next;
}
else
{
if(temp1.val<temp2.val)
{
temp3.next=temp1;
temp1=temp1.next;
}
else
{
temp3.next=temp2;
temp2=temp2.next;
}
}
temp3=temp3.next;
}
temp3.next=null;
return head;
}
}
思路
利用指针
先比较两链表开头的两个数 取其中最小作为链表头,并将取的那个链表的指针往后移一位重复比较 直到其中一个链表到达尾端 就把另一个链表剩下的部分全部加到结果链表的后面