Leetcode—21.合并两个有序链表【简单】

2023每日刷题(十三)

Leetcode—21.合并两个有序链表

Leetcode—21.合并两个有序链表【简单】_第1张图片

直接法实现代码

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){
    struct ListNode *p1, *p2, *p3;
    p1 = list1;
    p2 = list2;
    p3 = (struct ListNode *)malloc(sizeof(struct ListNode));
    struct ListNode *pc = p3;
    while(p1 && p2) {
        if(p1->val <= p2->val) {
            pc->next = p1;
            pc = p1;
            p1 = p1->next;
        } else {
            pc->next = p2;
            pc = p2;
            p2 = p2->next;
        }
    }
    pc->next = p1 ? p1 : p2;
    return p3->next;
}

运行结果

Leetcode—21.合并两个有序链表【简单】_第2张图片

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

你可能感兴趣的:(LeetCode刷题,leetcode,链表,算法,经验分享,c语言,数据结构)