合并两个排序的链表
题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
例子:
输入:{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;
}
};
海康威视公司福利 1107人发布
查看16道真题和解析