Leetcode题解-21. Merge Two Sorted Lists
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(把两个从小到大的序列链表合并成一个从小到大的链表)
思路
让两个链表从头比较,取较小的给新链表赋值然后移向链表的下一位,直至其中一个链表到了结尾。然后让新链表的下一个节点指向还未结束的链表的当前节点,把剩下的部分接在新链表尾部
代码
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
//给新链表一个不参与循环的头节点
ListNode head(-1);
ListNode *newlist = &head;
while(l1 && l2){
if(l1->val < l2->val){
newlist->next = l1;
l1 = l1->next;
}
else{
newlist->next = l2;
l2 = l2->next;
}
newlist = newlist->next;
}
//把剩下的部分接在新链表的尾部
newlist->next = l1? l1 : l2;
return head.next;
}