题解 | #合并k个已排序的链表#

合并k个已排序的链表

https://www.nowcoder.com/practice/65cfde9e5b9b4cf2b6bafa5f3ef33fa6

#include <stdio.h>
struct ListNode* Merge(struct ListNode* pHead1, struct ListNode* pHead2 ) {
    struct ListNode* head = NULL;
    struct ListNode* tmp = NULL;
    if (pHead1 == NULL) {
        return pHead2;
    }
    if (pHead2 == NULL) {
        return pHead1;
    }
    if (pHead1->val < pHead2->val) {
        head = pHead1;
        pHead1 = pHead1->next;
    } else {
        head = pHead2;
        pHead2 = pHead2->next;
    }
    tmp = head;


    while (tmp) {
        if (pHead1 == NULL) {
            tmp->next = pHead2;
            break;
        }
        if (pHead2 == NULL) {
            tmp->next = pHead1;
            break;
        }
        if (pHead1->val < pHead2->val) {
            tmp->next = pHead1;
            pHead1 = pHead1->next;
        } else {
            tmp->next = pHead2;
            pHead2 = pHead2->next;
        }
        tmp = tmp->next;
    }
    return head;
}
struct ListNode* mergeKLists(struct ListNode** lists, int listsLen ) {
    
    int index = 0;
    struct ListNode* head = NULL;
    if(listsLen==1)
    {
        return lists[0];
    }
    for(index=0;index<listsLen;index++)
    {
        head = Merge(head, lists[index]);
    }
    return head;
}

全部评论

相关推荐

码农索隆:单休一个月少休息4天,一年就是48天,平时节假日,别人3天假期,单休的两天
点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
05-23 19:02
吉林大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务