题解 | 合并两个排序的链表

合并两个排序的链表

https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337

struct ListNode* Merge(struct ListNode* pHead1, struct ListNode* pHead2 ) {
    //创建一个新的虚拟头节点,简化边界处理
    struct ListNode dummy;
    struct ListNode* current = &dummy;
    //同时遍历两个链表
    while (pHead1 != NULL && pHead2 != NULL) {
       if (pHead1->val <= pHead2 ->val) {
           current->next = pHead1;
           pHead1 = pHead1->next;
       } else {
            current->next = pHead2;
            pHead2 = pHead2->next;
        }
        current = current->next;
    }
     // 将剩余的节点连接到结果链表
    if (pHead1 != NULL) {
        current->next = pHead1;
    } else {
        current->next = pHead2;
    }
    
    // 返回真正的头节点
    return dummy.next;
}

全部评论

相关推荐

01-11 08:47
门头沟学院 Java
choumoduji...:读研的目的就是为了以最快的速度和最低的要求完成“学校”规定的毕业标准,而不是所谓课题组的要求
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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