• 2024-11-21数据结构 【带环链表2】
        说到带环链表,有一道题目是这样说的,如果一个链表存在环,那么就返回进入环的第一个节点,如果链表没有环,那么就返回空。这里给出两种解题思路:    第一种解法:小结论解法    分析:这道题目可以拆分成两个部分,第一:检查链表是否带环。第二:返回带环链表的第
  • 2024-11-21【力扣热题100】[Java版] 刷题笔记-234. 回文链表
    题目:234.回文链表给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。解题思路回文定义:是指正读和反读都相同的字符序列。将链表数据获取出来,再通过前后指针向中间遍历,数据一致,则是回文;如果不一致则不是回文。
  • 2024-11-20代码随想录:链表相交
    代码随想录:链表相交像做数学题一样,要挖掘出表象下的实际条件。比如这道题,链表在一段时间后相交,其实含义是两者的尾部是相同的,所以只需要将尾部对齐即可。/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListN
  • 2024-11-20力扣题目解析--合并k个升序链表
    题目给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例1:输入:lists=[[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->
  • 2024-11-20LCR 021. 删除链表的倒数第 N 个结点(中等)(主站19)
    https://leetcode.cn/problems/SLwz0R/https://leetcode.cn/problems/remove-nth-node-from-end-of-list/难度:☆☆☆题目:给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。示例:输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]输入:head=[1],n=1输出
  • 2024-11-19代码随想录:删除链表的倒数第N个节点
    代码随想录:删除链表的倒数第N个节点链表题目如果想找当前节点的前n个节点的话,用双指针法。另外务必用虚头节点。/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*
  • 2024-11-19代码随想录:两两交换链表中的节点
    代码随想录:两两交换链表中的节点链表题目务必用虚头节点,很多问题会变简单很多/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListNode(intx):val(x),next(
  • 2024-11-1924. 两两交换链表中的节点
    https://leetcode.cn/problems/swap-nodes-in-pairs/?envType=study-plan-v2&envId=top-100-liked对于我们正常交换单向链表的两个节点我们需要知道三个节点的信息,1.对于a->b->c,我们要交换a、b就要知道a、b、c三个节点,因为我们需要将a的next指向c,将b的next指向a,由于b->c这条
  • 2024-11-19LeetCode 1290[二进制链表转整数]
    题目链接LeetCode1290[二进制链表转整数]详情实例提示题解思路遍历链表,获取链表的值添加到容器内在容器内遍历值,由高位到地位遍历,为权重,然后算值代码/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*
  • 2024-11-19力扣刷题--027.回文链表
    想放弃吗?,那当初为什么要开始?题目描述给定一个链表的头节点head,请判断其是否为回文链表。如果一个链表是回文,那么链表节点序列从前往后看和从后往前看是相同的。示例1:输入:head=[1,2,3,3,2,1]输出:true示例2:输入:head=[1,2]输出:false思路分析如
  • 2024-11-18代码随想录:移除链表元素
    代码随想录:移除链表元素简单的链表操作,注意C++中在访问一个实体结构体时,用.来进行元素访问ListNodehead;head.val=10;head.next=nullptr;在访问一个指针变量时,用→来进行元素访问,如在本题中,题目给的head是一个指针,所以所有的变量访问都用→/***Definitionforsing
  • 2024-11-15初级数据结构——栈题库(c++)
    目录前言1.杭电oj——Bitset2.杭电oj——进制转换[3.力扣——LCR123.图书整理I](https://leetcode.cn/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/description/)[4.力扣——LCR027.回文链表](https://leetcode.cn/problems/aMhZSa/)[5.力扣——1614.括号的
  • 2024-11-15LeetCode100之两数相加(2)--Java
    1.问题描述        给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以0 开头。     
  • 2024-11-15【数据结构副本篇】顺序表 链表OJ
  • 2024-11-1411.14
    设计文档:链表逆置模块问题描述本题要求实现一个函数,将给定的单向链表逆置,即表头置为表尾,表尾置为表头。给定链表的节点结构如下:cstructListNode{intdata;structListNode*next;};函数接口如下:cstructListNode*reverse(structListNode*head);其中,head是用户
  • 2024-11-14单向链表题库2(c++)
    目录前言[1.力扣——LCR123.图书整理I](https://leetcode.cn/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/description/)[2.力扣——LCR024.反转链表](https://leetcode.cn/problems/UHnkqh/submissions/580256040/)[3.力扣LCR141.训练计划III](https://le
  • 2024-11-13Lock Free 无锁队列的实现
    无锁队列的实现 无锁队列的实现原理一般是利用Retry-loop和CAS等原子操作。现在几乎所有的CPU指令都支持CAS的原子操作,X86下对应的是 CMPXCHG 汇编指令。例如CAS(CompareAndSwap)的实现原理:boolcompare_and_swap(int*addr,intoldval,intnewval){if(*ad
  • 2024-11-1211.12随笔
    这里是11.12随笔。作业留档:本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头。链表结点定义如下:structListNode{intdata;structListNode*next;};函数接口定义:structListNode*reverse(structListNode*head);其中head是用户传入的链表的头指针
  • 2024-11-12单链表算法题(数据结构)
    1.反转链表https://leetcode.cn/problems/reverse-linked-list/description/题目:看到这个题目的时候我们怎么去想呢?如果我们反应快的话,应该可以想到我们可以从1遍历到5然后依次头插,但是其实我们还有更好的办法,就是利用三个指针,如何使用呢?反转链表OJ假如结构体已经给出t
  • 2024-11-12山田凉带你玩转OJ--判断链表是否有环并返回环的起始结点
    技术博客:判断链表是否有环并返回环的起始结点引言在链表操作中,判断链表是否存在环形结构是一个常见的问题。本文将详细介绍如何使用快慢指针法判断链表是否有环,并进一步找到环的起始结点。我们将分步骤讲解每一步的实现原理,并提供完整的代码实现。1.题目解读题目要求:
  • 2024-11-12OJ08题:876. 链表的中间结点
    目录题目思路分析代码展示题目给你单链表的头结点head,请你找出并返回链表的中间结点。注:如果有两个中间结点,则返回第二个中间结点。示例1:输入:head=[1,2,3,4,5]输出:[3,4,5]解释:链表只有一个中间结点,值为3。示例2:输入:head=[1,2,3,4,5,6]输出:[4,5
  • 2024-11-12代码随想录算法训练营第三天(LeetCode203.移除链表元素;LeetCode707.设计链表;LeetCode206.反转链表)
    LeetCode203.移除链表元素题目链接:LeetCode203.移除链表元素题目链接思路这道题目主要考察的是移除一个链表当中的元素,我们可以先在给定的链表前面加一个虚拟头结点,这样我们对给定链表头结点的操作和给定链表其余结点的操作就会变得相同。代码classSolution{p
  • 2024-11-12代码随想录算法训练营第四天(LeetCode24.两两交换链表中的节点;LeetCode10.删除链表的倒数第N个节点;LeetCode面试题02.07.链表相交;LeetCode142.环形链表Ⅱ)
    LeetCode24.两两交换链表中的节点题目链接:两两交换链表中的节点题目链接思路这道题其实就是一个模拟题,要求每次交换链表中两个相邻的节点(1、2节点互换;3、4节点互换;2、3节点不互换,意思就是交换过的节点不参与后续的交换了),同时只能进行节点交换,不能进行值交换。主要考
  • 2024-11-11C++数据结构实验题目解析
    目录题目:考点分析:难点1:就地逆置步骤:代码实现:核心代码详细解释:难点2:①非递减链表,②删除相同元素代码详解①:代码详解②:完整代码:大家好,今天我就来给大家分析一下我上期分享的题目的详细解析,编程的能力都是逐步提升的,但是思维的锻炼可以提前进行,这样有助于我们以后自
  • 2024-11-112024/11/11日工作总结
    完成数据结构pta实验题:6-3链表逆置:本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头。链表结点定义如下:structListNode{intdata;structListNode*next;};函数接口定义:structListNode*reverse(structListNode*head);其中head是用户传入的链