首页 > 其他分享 >力扣刷题笔记-21 合并两个有序链表

力扣刷题笔记-21 合并两个有序链表

时间:2024-05-09 20:33:10浏览次数:12  
标签:p2 力扣 p1 ListNode 21 next 链表 null

其实不回答就是答案

双指针

class Solution {
    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
        ListNode dummy = new ListNode(-1);
        ListNode p = dummy;
        ListNode p1 = list1,p2 = list2;
        while (p1 != null && p2 != null){
            if (p1.val > p2.val){
                p.next = p2;
                p2 = p2.next;
            } else {
                p.next = p1;
                p1 = p1.next;
            }
            p = p.next;
        }
        if (p1 != null){
            p.next = p1;
        }
        if (p2 != null) {
            p.next = p2;
        }
        return dummy.next;
    }
}

思想

  1. 两个指针分别指向两个链表
  2. 新的链表,dummy是虚拟头节点,(现在还不知道为啥这么做)
  3. p1和p2对比,谁小,谁连接到新的链表的,末尾
  4. while循环的条件是两个链表都不为空
  5. 如果有一个为空,那就结束了
  6. 然后把剩下那个不为空的直接p.next = p1/2

tips

  1. p是新链表的指针,是从虚拟头节点也就是-1开始的,所以你需要进行后移去接收新的数据,也就是p.next
  2. 为了方便对比,每次p1/2用完之后,后移一下。也就是被比较的,要主动后移

标签:p2,力扣,p1,ListNode,21,next,链表,null
From: https://www.cnblogs.com/Jason-01011010/p/18183029

相关文章

  • 215. 数组中的第K个最大元素
    给定整数数组nums和整数k,请返回数组中第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。你必须设计并实现时间复杂度为O(n)的算法解决此问题。示例1:输入:[3,2,1,5,6,4],k=2输出:5示例2:输入:[3,2,3,1,2,4,5,5,6......
  • 20211317李卓桐 Exp6 MSF攻防实践 实验报告
    Exp6MSF攻防实践实践内容本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。具体需要完成:1.1一个主动攻击实践,尽量使用最新的类似漏洞;1.2一个针对浏览器的攻击,尽量使用最新的类似漏洞;1.3一个针对客户端的攻击,如Adobe或office,尽量使用最新的类似......
  • mac80211子系统学习-rx部分
    mac80211子系统学习-rx部分wifi网卡架构Linux将wifi芯片分成了fullmac和softmac两种类型,两种类型的区别在于mlme被driver+hardware实现还是被kernel实现,用wirelesswiki上的话来讲:SoftMACisatermusedtodescribeatypeofWNICwheretheMLMEisexpectedtobema......
  • 删除单向链表中数据最小的结点
    (1)算法的基本设计思想要找到链表中数据最小的结点,可以使用4指针法。具体步骤如下:定义4个指针,分别命名为MinNodeprev、MinNode、CurrentNodePrev、CurrentNode,MinNodeprev、CurrentNodePrev指向链表的头结点,MinNode、CurrentNode指向链表的首结点。同时移动CurrentNodePrev、Cur......
  • 20212217刘恒谦-Exp6 MSF攻防实践
    实践内容本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。具体需要完成:一个主动攻击实践,尽量使用最新的类似漏洞;(1分)首先生成木马文件,通过socat传输到windows主机上:​windows主机接收文件到火绒信任区,避免误杀:​之后,在windows中运行该木马程序,......
  • IR2104详解
    目录基础知识NMOS原理半桥控制原理IR2104简介示例电路引脚定义电路原理详解自举升压死区控制总结链接引入:IR2104是我上手的第一个半桥栅极驱动芯片,使用两片IR2104就可以搭建一个全桥电路控制电机的正反转。然而由于不懂其中原理,在......
  • LeetCode 2210. Count Hills and Valleys in an Array
    原题链接在这里:https://leetcode.com/problems/count-hills-and-valleys-in-an-array/description/题目:Youaregivena 0-indexed integerarray nums.Anindex i ispartofa hill in nums iftheclosestnon-equalneighborsof i aresmallerthan nums[i].......
  • 23. 合并 K 个升序链表
    23.合并K个升序链表https://leetcode.cn/problems/merge-k-sorted-lists/?envType=study-plan-v2&envId=top-interview-150 思路K个升序链表,依据显然的规则:当前最小的值,肯定出自于K个升序链表的K个表头中,对这K个表头使用最小堆(priority_queue)进行管理,pop出的堆顶值,就......
  • P8754 [蓝桥杯 2021 省 AB2] 完全平方数
    原题链接题解分解n的质因子,如果为奇数就补一个由于大于\(\sqrt{n}\)的质因子最多不超过一个,所以我们筛小于\(1e6\)的质数code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;vector<int>prime;vector<int>minfac(1e6+3,0);intmain(){f......
  • 021Dockerfile相关
    一、dockerhistory镜像层文件确认方法#(1)问:如何查询dockerfile里的ADDfile:a0a9df396dd400a83cc437cba4830851b18457de79db5955704378c6d206b9a1in/usr/local/java/实际文件file后的id?ADDfile:a0a9df396dd400a83cc437cba4830851b18457de79db5955704378c6d206b9a1i......