题目:
分析思路:
1.新建一个哨兵结点,到时用于返回合并后新链表的头结点。
2.while循环,直到有一点链表到结尾为止
3.把非空的链表绑定到合并结点的尾部,并返回合并后链表的头结点。
代码如下:
class Solution {
public:
ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {
ListNode *prehead = new ListNode(-1);
ListNode *prev = prehead;
while(list1 != NULL && list2 != NULL)
{
if(list1->val > list2->val)
{
prev->next = list2;
list2 = list2->next;
}
else
{
prev->next = list1;
list1 = list1->next;
}
prev = prev->next;
}
prev->next = (list2 == nullptr ? list1 : list2);
return prehead->next;
}
};