简单的链表合并问题,注意三种情况,两个头都不为空,一个为空和都为空。
另外,先有一个无用的头是一个很好的方法,不用判断是不是第一次。
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
ListNode *head = new ListNode(0);
ListNode *cur = head;
while(l1&&l2){
ListNode *tmp;
if(l1->val<l2->val){
tmp = new ListNode(l1->val);
l1 = l1->next;
}else{
tmp = new ListNode(l2->val);
l2 = l2->next;
}
cur->next = tmp;
cur = cur->next;
}
if(l1) cur->next = l1;
else if(l2) cur->next = l2;
return head->next;
}
};