首页 > 其他分享 >一道合并有序链表的题

一道合并有序链表的题

时间:2023-01-18 20:11:30浏览次数:41  
标签:ListNode temp list1 合并 next 链表 有序 list2

 

/**  * Definition for singly-linked list.  * struct ListNode {  *     int val;  *     ListNode *next;  *     ListNode() : val(0), next(nullptr) {}  *     ListNode(int x) : val(x), next(nullptr) {}  *     ListNode(int x, ListNode *next) : val(x), next(next) {}  * };  */ class Solution { public:     ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {        ListNode* prehead=new ListNode(-1);//哨兵        ListNode* temp=prehead;     //    当链表都不为空才是进入循环的条件        while(list1!=nullptr&&list2!=nullptr){            if(list1->val<list2->val){                temp->next=list1;                list1=list1->next;            }            else{                temp->next=list2;                list2=list2->next;            }            temp=temp->next;        }        temp->next=list1==nullptr?list2:list1;        return prehead->next;     } }; 未想到短短几月,在接触同一道题,还收获许多知识与感悟! ps:我是个编码小垃圾,大佬路过别喷~ 将两个链表合并成一个链表, 1.首先我们建立一个哨兵prehead,方便返回合并链表l3的头指针。在建立连接链表的一个指针temp,若l1中val小于l2中val,temp中next将存储l1的结点的地址,l1遍历到它的下一个结点。否则,反。这时我们完成了一次比较,将temp->next赋值给temp。进入下次循环的比较

 2.当我们退出循环时,L1,L2其中为空间链表。我们可以直接将非空链表插入到L3中尾指针后面,最后将L3的头指针返回,也就是之前提到的prehead的next.

标签:ListNode,temp,list1,合并,next,链表,有序,list2
From: https://www.cnblogs.com/coolcooldi/p/17060491.html

相关文章

  • 顺序链表
    #include<iostream>#defineMAXSIZE100#defineERROR0#defineOK1usingnamespacestd;typedefstruct{ int*elem; in......
  • 【LeetCode链表#10】删除链表中倒数第n个节点(双指针)
    删除链表倒数第N个节点力扣题目链接(opensnewwindow)给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例1:输入:hea......
  • 程序员代码面试指南第二版 12.打印两个升序链表的公共部分
    ​​welcometomyblog​​程序员代码面试指南第二版12.打印两个升序链表的公共部分题目描述题目描述给定两个升序链表,打印两个升序链表的公共部分。输入描述:第一个链表......
  • P1880 [NOI1995] 石子合并 题解
    P1880[NOI1995]石子合并区间DP。首先将其复制一遍(因为是环)。设\(f[i][j]\)表示将\(i\)到\(j\)段的石子合并需要的次数。有\[f[i][j]=0(i=j)\]\[f[i][j]......
  • [数据结构]双向链表(C语言)
    双向链表双向链表概念双向链表也叫双链表,其每个数据结点中都有两个指针,分别指向直接后继和直接前驱。在单向链表中若要找到某个节点的前驱节点,需要先遍历到这个节点,然后......
  • 【LeetCode链表#9】图解:两两交换链表节点
    两两交换链表中的节点力扣题目链接(opensnewwindow)给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节......
  • 53、商品服务---仓储服务---合并采购需求
    采购需求合并到采购单。然后工作人员领取采购单去购买货物......
  • 数组对象根据某个对象合并
    letarr=[{id:1,list:{name:999}},{id:1,list:{name:888}},{id:2,list:{name:777}},{id:2,list:{name:66......
  • Spring Cloud中Hystrix的请求合并
    前言Hystrix请求合并用于应对服务器的高并发场景,通过合并请求,减少线程的创建和使用,降低服务器请求压力,提高在高并发场景下服务的吞吐量和并发能力在正常的分布式请求中,客......
  • reduce处理相同id合并对象内容为数组
    例:letarr=[  {    situationId:'666666666666666666666',    cloundClass:'999',  },  {    situationId:'1608655741......