剑指Offer-合并两个排序的链表

题目描述 合并两个排序的链表

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

解题思路

  • 新建一个表头;
  • 比较两个链表的头结点,让表头指向较小的头结点;
  • 返回新建表头的下一个节点

代码

class Solution {
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
    {
        if(!pHead1) return pHead2;
        if(!pHead2) return pHead1;
        ListNode *head = new ListNode(0);
        ListNode *p = head;

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

        if(pHead1) head->next = pHead1;
        if(pHead2) head->next = pHead2;

        return p->next;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 代码一: 这是...
    qming_c阅读 1,625评论 0 0
  • 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 解题思路 ...
    繁著阅读 1,643评论 0 0
  • 链表删除[203] Remove Linked List Elements[19] Remove Nth Node...
    野狗子嗷嗷嗷阅读 11,431评论 4 35
  • 今天是母亲节,我没报任何希望得到什么。因为我们之间的交流甚少,只是问回来吃饭吗?我不回来吃了,出此之外就是儿...
    浅浅梨涡笑阅读 1,238评论 0 0
  • 每一天睁开眼睛,太阳会从东方悄然升起,或明媚照耀大地,或藏在云间,慈祥的看着这个世界,他告诉我们新的一天来了,无论...
    八月的喵阅读 2,472评论 0 1

友情链接更多精彩内容