首页 > 其他 > 详细

合并链表

时间:2019-04-25 12:49:26      阅读:126      评论:0      收藏:0      [点我收藏+]
/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) :
            val(x), next(NULL) {
    }
};*/
class Solution {
public:
    queue<int> q;
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
    {
        if(pHead1 == NULL && pHead2 == NULL){
            return NULL;
        }
        while(true){
            if(pHead1 == NULL && pHead2 == NULL){
                break;
            }else if(pHead1 != NULL && pHead2 == NULL){
                q.push(pHead1->val);
                pHead1 = pHead1->next;
            }else if(pHead1 == NULL && pHead2 != NULL){
                q.push(pHead2->val);
                pHead2 = pHead2->next;
            }else{
                if(pHead1->val<=pHead2->val){
                    q.push(pHead1->val);
                    pHead1 = pHead1->next;
                }else{
                    q.push(pHead2->val);
                    pHead2 = pHead2->next;
                }
            }
        }
        ListNode* head = (ListNode*)malloc(sizeof(ListNode));
        ListNode* p = head;
        while(!q.empty()){
            p->val = q.front();
            q.pop();
            if(q.empty()){        //没有提前跳出循环,会导致最后多出一个0
                break;
            }
            p->next = (ListNode*)malloc(sizeof(ListNode));
            p = p->next;
        }
        //p = NULL;
        return head;
    }
};

 

合并链表

原文:https://www.cnblogs.com/fzuhyj/p/10767671.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!