《剑指offer》-合并两个排序的链表

简介: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。class Solution{public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2){ ListNode* resu...

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

class Solution{
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2){
        ListNode* result = NULL;
        ListNode* current = NULL;

        if (pHead1 == NULL){
            return pHead2;
        }
        if (pHead2 == NULL){
            return pHead1;
        }

        while (pHead1 && pHead2){
            if (pHead1->val <= pHead2->val){
                if (result == NULL){
                    current = result = pHead1;
                }
                else{
                    current->next = pHead1;
                    current = current->next;
                }
                pHead1 = pHead1->next;
            }
            else{
                if (result == NULL){
                    current = result = pHead2;
                }
                else{
                    current->next = pHead2;
                    current = current->next;
                }
                pHead2 = pHead2->next;
            }
        }

        if (pHead1){
            current->next = pHead1;
        }
        if (pHead2){
            current->next = pHead2;
        }

        return result;
    }
};

目录
相关文章
|
1月前
《剑指offer》——合并两个排序的链表
《剑指offer》——合并两个排序的链表
|
1月前
《剑指offer》——从尾到头打印链表
《剑指offer》——从尾到头打印链表
|
1月前
|
存储 JavaScript
leetcode82. 删除排序链表中的重复元素 II
leetcode82. 删除排序链表中的重复元素 II
22 0
|
1月前
leetcode83. 删除排序链表中的重复元素
leetcode83. 删除排序链表中的重复元素
10 0
|
1月前
|
C语言
反转链表、链表的中间结点、合并两个有序链表【LeetCode刷题日志】
反转链表、链表的中间结点、合并两个有序链表【LeetCode刷题日志】
|
2月前
|
算法 前端开发
删除排序链表中的重复元素 II
删除排序链表中的重复元素 II
13 0
|
1月前
|
算法
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)
|
1月前
|
存储
LeetCode刷题---817. 链表组件(哈希表)
LeetCode刷题---817. 链表组件(哈希表)
|
1月前
|
存储 C语言 索引
环形链表、环形链表 II、有效的括号​​​​​​​【LeetCode刷题日志】
环形链表、环形链表 II、有效的括号​​​​​​​【LeetCode刷题日志】
【移除链表元素】LeetCode第203题讲解
【移除链表元素】LeetCode第203题讲解