合并两个排序的链表

题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
例子:
输入:{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;
    }
};
全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务