草庐IT

链表OJ题

全部标签

【LeetCode】【数据结构】单链表OJ常见题型(一)

 👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》🌝每一个不曾起舞的日子,都是对生命的辜负。目录前言:【LeetCode】203.移除链表元素【LeetCode】206.反转链表 思路一思路二【LeetCode】876.链表的中间结点快慢指针法【LeetCode】剑指Offer22.链表中倒数第k个结点快慢指针法 【LeetCode】21.合并两个有序链表【LeetCode】剑指OfferⅡ27.回文链表前言:本系列博文博主会讲解链表的经典OJ题目。欢迎大家📂收藏📂以便未来做题时可以快速找到思路,巧妙的方法可以事半功倍。=============

链表OJ题讲解1

💓博主个人主页:不是笨小孩👀⏩专栏分类:数据结构与算法👀🚚代码仓库:笨小孩的代码库👀⏩社区:不是笨小孩👀🌹欢迎大家三连关注,一起学习,一起进步!!💓链表OJ删除链表元素方法一方法二反向链表方法一方法二链表的中间结点链表中倒数第k个结点合并两个排序列表删除链表元素方法一我们可以遍历一遍链表,然后将等于val的值的节点删除了,然后在将剩余的链接起来即可。我们就需要两个指针,一个遍历链表另一个记录上一个节点的位置,如果相等就删除链接,等到链表遍历结束,就可以得到新的链表,但是这种放大有一个弊端,就是如果头结点就是val我们无法处理,所以我们需要现将头结点是val的情况处理了,头结点是val,我们只需

编程导航算法通关村第 1 关|白银 - 四种方法解决两个链表第一个公共子节点-C++

找出两个链表的第一个公共节点使用四种不同的方法来找出两个链表的第一个公共节点,用C++代码进行实现。问题描述给定两个链表,找出它们的第一个公共节点。方法一:使用集合这种方法的主要思路是,我们先遍历第一个链表,并将每个节点加入到一个集合中。然后,我们遍历第二个链表,当我们在集合中找到了一个节点,我们就知道这是两个链表的第一个公共节点。代码实现如下:ListNode*findFirstCommonNodeBySet(ListNode*list1,ListNode*list2){unordered_setListNode*>set1;while(list1!=nullptr){set1.insert

【数据结构刷题集】链表经典习题

😽PREFACE🎁欢迎各位→点赞👍+收藏⭐+评论📝📢系列专栏:数据结构刷题集🔊本专栏涉及到题目是数据结构专栏的补充与应用,只更新相关题目,旨在帮助提高代码熟练度💪种一棵树最好是十年前其次是现在移除链表元素题目链接:https://leetcode.cn/problems/remove-linked-list-elements/description/structListNode*removeElements(structListNode*head,intval){structListNode*prev=NULL,*cur=head;while(cur){if(cur->val==val){pr

【数据结构刷题集】链表经典习题

😽PREFACE🎁欢迎各位→点赞👍+收藏⭐+评论📝📢系列专栏:数据结构刷题集🔊本专栏涉及到题目是数据结构专栏的补充与应用,只更新相关题目,旨在帮助提高代码熟练度💪种一棵树最好是十年前其次是现在移除链表元素题目链接:https://leetcode.cn/problems/remove-linked-list-elements/description/structListNode*removeElements(structListNode*head,intval){structListNode*prev=NULL,*cur=head;while(cur){if(cur->val==val){pr

算法通关村第一关——链表经典问题之第一个公共子节点笔记

五种方法解决链表的第一个公共子节点问题题目:剑指Offer52.两个链表的第一个公共节点输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点c1开始相交。链表节点的定义structListNode{intval;ListNode*next;ListNode(intx):val(x),next(NULL){}};小技巧:如果题目刚拿到手的时候没有思路怎么办?试着将常用的数据结构和常用的算法思想都想一遍,一个一个靠,看有没有能解决的。常用的数据结构:数组,链表,队列,栈,Hash表,集合,树,堆等等常用的算法:各种排序,双指针,递归等等按照这个思路,想一想(1)方法一:首先想到的就是暴

数据结构入门指南:链表(新手避坑指南)

目录前言1.链表1.1链表的概念 1.2链表的分类1.2.1单向或双向1.2.2.带头或者不带头1.2.33.循环或者非循环1.3链表的实现 定义链表总结前言        前边我们学习了顺序表,顺序表是数据结构中最简单的一种线性数据结构,今天我们来学习链表,难度相较于顺序表会大幅增加,非常考验大家对结构体、指针的理解。但是也不要害怕,我会一一向大家解答疑惑,本期的内容先给初学者预预热,主要介绍在刚开始学习链表时需要注意的点、涉及的基础知识以及逻辑基础,下期会将功能接口具体实现。1.链表1.1链表的概念概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针

《算法通关村第一关——链表青铜挑战笔记》

第一关——链表1、青铜挑战——创建+增删改查(c++)1.1链表的内部结构链表中每个结点内部的“生态环境”。数据域存储元素的值,指针域存放指针。示例:1.2链表的定义structlinkNode{ intval;//代表数据 structlinkNode*next;//代表指针};1.3理解C语言里是如何构造出链表c语言构造链表可分为三步1.创建头指针。2.创建头结点,使头指针指向头结点。3.循环创建结点,并使前一个结点指向当前结点。1.)创建结点。2.)使前一个结点指向当前结点。3.)前一个结点变为当前节点(为下一次循环准备)。代码如下:#include#includestructLinkN

数据结构与算法(三):单向链表

链表定义链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑是通过链表种的指针链接次序实现的。链表由一系列节点组成,每个节点包括两部分:一个是存储数据元素的数据域,一个是存储下一个节点地址的指针域。单向链表从头节点(也可以没有头节点)开始,指针指向下一个节点的位置,只能由上一个节点指向后面节点,后面节点不能指向前面节点。单向链表示意图:节点结构节点包含了数据域和指针域。数据域存放该节点存放的数据信息,指针域存放下一个节点的存储地址。no、nickName、name为该节点的数据内容,nextNode为下一个节点。publicclassNode{privateIntegerno;pr

代码随想录算法训练营第三天 | 203.移除链表元素 707.设计链表 206.反转链表

链表理论基础链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。链表的类型单链表: 双链表:每一个节点有两个指针域,一个指向下一个节点,一个指向上一个节点。双链表既可以向前查询也可以向后查询。 循环链表:循环链表可以用来解决约瑟夫环问题。 链表的存储方式链表在内存中不是连续分布的,是通过指针域的指针链接在内存中的各个节点。 这个链表起始节点为2,终止节点为7,各个节点分布在内存的不同地址空间上,通过指针串联在一起。链表定义//单链表structListNode{intval;//