首页 > 其他分享 >合并两个排序的链表

合并两个排序的链表

时间:2024-10-15 21:21:59浏览次数:16  
标签:NULL ListNode struct 合并 next 链表 pHead1 pHead2 排序

输入两个链表,并将它们的值按照递增的顺序合并成一个新的链表。

题目要求如下:

 

 我们可以创建两个新的链表,其中一个作为中间变量来存储合并后的链表,另一个链表记录中间链表并作为返回值返回。

代码如下:

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param pHead1 ListNode类 
 * @param pHead2 ListNode类 
 * @return ListNode类
 */
struct ListNode* Merge(struct ListNode* pHead1, struct ListNode* pHead2 ) 
{
    // write code here
    struct ListNode* p=(struct ListNode*)malloc(sizeof(struct ListNode));
    struct ListNode* pHead=p;
    if(pHead1==NULL&&pHead2==NULL)
    {
        return pHead1;
    }
    else if(pHead1==NULL&&pHead2!=NULL)
    {
        return pHead2;
    }
    else if(pHead1!=NULL&&pHead2==NULL)
    {
         return pHead1;
    }
    while(pHead1!=NULL&&pHead2!=NULL)
    {
        if(pHead1->val<pHead2->val)
        {
            p->next=pHead1;
            p=p->next;
            pHead1=pHead1->next;
        }
        else
        {
            p->next=pHead2;
            p=p->next;
            pHead2=pHead2->next;
        }
    }
    p->next=pHead1==NULL?pHead2:pHead1;
    return pHead->next;
}

标签:NULL,ListNode,struct,合并,next,链表,pHead1,pHead2,排序
From: https://blog.csdn.net/2401_86655821/article/details/142964754

相关文章

  • 单链表的基本概念
    单链表的定义typedefstructLNode{intdata;structLNode*next;//定义一个指向结构体自身的指针,用来指向下一个节点}LNode,*LinkList;_____________________________________________LNode*p=LinkListp;//两种定义指针的形式,侧重点不......
  • 代码随想录训练营第63天|拓扑排序
    117.软件构建#include<iostream>#include<vector>#include<queue>#include<unordered_map>usingnamespacestd;intmain(){intm,n,s,t;cin>>n>>m;vector<int>inDegree(n,0);//记录每个文件的入度......
  • 912.排序数组
    这一题我们要用归并排序的方法归并排序1)整体就是一个简单递归,左边排好序、右边排好序、让其整体有序2)让其整体有序的过程里用了排外序方法3)利用master公式来求解时间复杂度4)归并排序的实质时间复杂度O(N*logN),额外空间复杂度O(N)912.排序数组给你一个整数数组 nums,......
  • 03 线性结构——链表(逻辑与物理结构、分类、时间复杂度分析、相关功能定义与代码实现)
    目录1 链表是什么1.1 逻辑结构1.2物理结构1.3 相关概念2链表的分类2.1单链表2.2双链表2.3循环单链表2.4循环双链表2.5静态链表3链表的优缺点3.1优点3.2缺点3.3与数组的对比4功能定义5功能实现5.1初始化链表5.2返回链表的长度5.3在指定位......
  • 第2课-枚举、排序、贪心
    前言如果认为自己代码没问题,换行问题,边界问题等都处理了还是不行,可以试试交C++(GCC9)该类型,因为部分题目是UVA上的老题,可能不支持新版本的C++。如果提交UNKNOWNERROR,应该是没绑定UVA账号,洛谷右上角个人设置里去填写注册一下即可。除法Division思路这个题一定要注意输......