合并两个排序的链表
题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
例子:
输入:{1,3,5},{2,4,6}
输出:{1,2,3,4,5,6}
解题思路:
建立一个新的头节点,对比ab链表的值,谁小就链接到这个新的链表上。
ps:
1:cur.next的用法,如果直接使用cur 那么我的最后一个节点将是个空节点。
2:新建节点的代码总是忘记,下次不可以再忘记了。
3:需要注意的是要多设置一个指针cur。
代码:
class Solution { public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { ListNode *vhead = new ListNode(-1); ListNode *cur = vhead; while (pHead1&&pHead2){ if(pHead1->val > pHead2->val) { cur->next = pHead2;/* 这里出现了错误,*/ pHead2=pHead2->next;} else{ cur->next=pHead1; pHead1 = pHead1->next; } cur = cur->next; } cur->next=pHead1 ? pHead1: pHead2;/* 这里出现了错误,*/ return vhead->next; } };