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.
Linked List
Solution in C++:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
ListNode *fakeHead = new ListNode(0);
ListNode *ptr = fakeHead;
while(l1&&l2){
if(l1->val<l2->val){
ptr->next = l1;
l1 = l1->next;
}
else{
ptr->next = l2;
l2 = l2->next;
}
ptr = ptr->next;
}
ptr->next= l1?l1:l2;
return fakeHead->next;
}
};
Note: class定以后要加";"。有有参构造函数
ListNode(int x)的情况下,调用无参构造函数ListNode()就会报错。
判断结点指针是否为null,直接用while(l1)就行,不用加!=null。