题目:
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.
题意:
将两个单链表合并,合并一个新的单链表。
算法分析:
比较容易,注意此题并未要求删除重复元素。
代码如下:
public ListNode mergeTwoLists(ListNode l1, ListNode l2)
{
if (l1 == null)
{
return l2;
}
if (l2 == null)
{
return l1;
}
ListNode head = null;
ListNode end = null;
ListNode first = l1;
ListNode second = l2;
while (first != null && second != null)
{
int temp1 = first.val;
int temp2 = second.val;
if (temp1 <= temp2)
{
if (head == null)
{
head = first;
end = head;
}
else
{
end.next = first;
end = end.next;
}
first = first.next;
}
else
{
if (head == null)
{
head = second;
end = head;
}
else
{
end.next = second;
end = end.next;
}
second = second.next;
}
}
//两个链表的长度不同时,当一方遍历完毕,另一方剩余的元素全部接到新的链表中
if (first != null)
{
end.next = first;
}
if (second != null)
{
end.next = second;
}
return head;
}