美文网首页
16:合并两个排序的链表

16:合并两个排序的链表

作者: iwtbam | 来源:发表于2019-08-06 15:14 被阅读0次

题目描述

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

解题思路

AC代码

class Solution {
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
    {
        if (!pHead1)
            return pHead2;

        if (!pHead2)
            return pHead1;


        ListNode* temp1 = pHead1->val < pHead2->val? pHead1 : pHead2;
        ListNode* temp2 = pHead1->val < pHead2->val? pHead2 : pHead1;
        ListNode* nHead = temp1;
        ListNode* pre = temp1;

        while (temp2) {

            while (temp1&&temp2->val >= temp1->val) {
                pre = temp1;
                temp1 = temp1->next;
            }

            if (temp1) {
                pre->next = temp2;
                ListNode* temp22 = temp2->next;
                temp2->next = temp1;
                pre = temp2;
                temp2 = temp22;
            }
            else{
                pre->next = temp2;
                return nHead;
            }
                
        }

        return nHead;
    }
};

相关文章

  • 面试题25. 合并两个排序的链表

    合并两个排序的链表 题目描述 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例: ...

  • LeetCode题解之合并两个排序的链表

    合并两个排序的链表 题目描述 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1:...

  • 25:合并两个排序的链表

    题目25:合并两个排序的链表 输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的 举例说...

  • 剑指offer.C++.code16-20

    16. 合并两个排序的链表 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减...

  • LeetCode 每日一题 [56] 合并两个排序的链表

    LeetCode 合并两个排序的链表 [简单] 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增...

  • 剑指offer 15~17

    15.反转链表输入一个链表,反转链表后,输出链表的所有元素。 16.合并两个排序的链表输入两个单调递增的链表,输出...

  • leecode刷题(27)-- 合并k个排序链表

    leecode刷题(27)-- 合并k个排序链表 合并k个排序链表 合并 k 个排序链表,返回合并后的排序链表。请...

  • 剑指offer之合并两个排序的列表

    合并两个排序的列表 欢迎关注作者简书csdn传送门 题目   输入两个递增排序的链表,合并这两个链表并使新链表中的...

  • 2018-12-26

    问题列表 合并两个有序链表 合并K个排序链表 合并区间 插入区间 问题与反馈 总结与收获 多个有序链表的合并,类似...

  • 面试题25:合并两个排序的链表

    题目:输入两个递增排序的链表,合并这两个链表并使新链表中的节点依然是排序的

网友评论

      本文标题:16:合并两个排序的链表

      本文链接:https://www.haomeiwen.com/subject/adtwdctx.html