草庐IT

leetcode刷题之回文链表

全部标签

直接讲清楚反转链表和判断子链表是怎么搞的【python】

Reversed_sub反向子链表题,直接把反向链表和子链表讲清楚。反向假设有一个链表:1->2->3->4->None初始化三个指针:prev:用于指向当前节点的前一个节点。初始时prev为None。current:用于指向当前节点。初始时current指向链表的头节点。next:用于保存当前节点的下一个节点,防止在修改current.next值之后丢失对下一个节点的引用。进入循环,每次迭代执行以下步骤,直到current指向None(到达链表尾部):将current.next指针指向prev,即将当前节点的下一个节点指向它的前一个节点,完成反转。将prev指针指向current,即将pre

刷题笔记(第八天)

1.请补全JavaScript代码,实现一个函数,要求如下:根据输入的数字范围[start,end]和随机数个数"n"生成随机数生成的随机数存储到数组中,返回该数组返回的数组不能有相同元素注意:不需要考虑"n"大于数字范围的情况输入:getUniqueNums(2,10,4)输出:[4,6,2,8]const_getUniqueNums=(start,end,n)=>{leta=[];letcount=0;while(countn){letx=Math.floor(Math.random()*(end-start)+start)if(a.indexOf(x)===-1){a.push(x);c

LeetCode 热题100——栈与队列专题(三)

一、有效的括号20.有效的括号(题目链接)思路:1)括号的顺序匹配:用栈实现,遇到左括号入,遇到右括号出(保证所出的左括号与右括号对应),否则顺序不匹配。2)括号的数量匹配:1>左括号大于右括号:用栈实现,遇到左括号入,遇到右括号出,遍历完字符数组,此时栈不为空,则说明左括号数量大于右括号;2>右括号大于左括号:遇到右括号出时,判断栈是否为空,若此时栈为空,说明右括号数量大于左括号;typedefcharSDateType;typedefstructStack{ SDateType*a; inttop; intcapacity;}Stack;//初始化栈和销毁栈voidInitStack(St

Java 算法篇-链表的经典算法:判断回文链表、判断环链表与寻找环入口节点(“龟兔赛跑“算法实现)

🔥博客主页: 【小扳_-CSDN博客】❤感谢大家点赞👍收藏⭐评论✍   文章目录    1.0链表的创建        2.0判断回文链表说明    2.1快慢指针方法        2.2使用递归方式实现反转链表方法    2.3实现判断回文链表-使用快慢指针与反转链表方法    3.0判断环链表说明    3.1实现判断环链表与寻找环入口节点 -"龟兔赛跑"算法实现        3.2解释为什么第一次相遇后,兔、龟每一次都走一步最终会相遇且该节点是环入口节点的原因    4.0实现判断回文链表、判断环链表且寻找环入口节点的完整代码     1.0链表的创建        链表是一种常见的

【LeetCode 热题 100】图论 专题(bfs,拓扑排序,Trie树 字典树)

from:https://leetcode.cn/studyplan/top-100-liked/bfs具有边权为1的最短路性质拓扑排序,入度Trie树,高效存储字符串【见鬼,不知道为什么写错,需要掌握熟练度】文章目录200.岛屿数量【dfs/bfs】994.腐烂的橘子【bfs具有边权为1的最短路性质】207.课程表【拓扑排序】208.实现Trie(前缀树)【模板题】200.岛屿数量【dfs/bfs】dfs写法,比较简洁classSolution{public:intdx[4]={-1,0,1,0},dy[4]={0,1,0,-1};intn,m;intnumIslands(vector>&g

顺序表和链表

 线性表线性表(linearlist)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。 顺序表顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 顺序表一般的功能顺序表一般需要能够尾插、头插、尾删、头删、任意插入(后面)、任意位置删除等主要功能;voidSLInit(SL*ps1);//初始化voidSLDest

【剑指offer|图解|链表】链表的中间结点 + 链表中倒数第k个结点

🌈个人主页:聆风吟🔥系列专栏:数据结构、算法模板🔖少年有梦不应止于心动,更要付诸行动。文章目录📋前言一.⛳️链表的中间结点二.⛳️链表中倒数第k个结点📝结语📋前言    💬hello!小伙伴们大家好哇,今天作者给大家带来的是链表的相关面试题的讲解,在学习了下文之后,相信大家可以更好的理解链表,并且我们同过本文的练习相信大家对快慢双指针也将会有一定的了解。    📚系列专栏:本期文章收录在《剑指offer每日一练》,大家有兴趣可以浏览和关注,后面将会有更多精彩内容!    🎉欢迎大家关注🔍点赞👍收藏⭐️留言📝!一.⛳️链表的中间结点⌈在线OJ链接,可以转至此处自行练习⌋题目:给你单链表的头结点h

【刷题专栏—突破思维】LeetCode 142. 环形链表 II

前言:本篇博客将讲解三个OJ题,前两个作为铺垫,最后完成环形链表的节点的寻找文章目录一、160.相交链表二、141.环形链表三、142.环形链表II一、160.相交链表题目链接:LeetCode—相交链表题目描述:给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回null。图示两个链表在节点c1开始相交:注意,函数返回结果后,链表必须保持其原始结构。评测系统将根据这些输入创建链式数据结构,并将两个头节点headA和headB传递给你的程序。如果程序能够正确返回相交节点,那么你的解决方案将被视作正确答案。示例1:输入:inter

LeetCode | 19. 删除链表的倒数第 N 个结点

LeetCode|19.删除链表的倒数第N个结点OJ链接思路:定义虚拟头节点dummy并初始化使其指向head然后定义快慢指针让快指针先走n步然后一起走最后删除倒数第n个节点然后释放虚拟节点dummystructListNode*removeNthFromEnd(structListNode*head,intn){//定义虚拟头节点dummy并初始化使其指向headstructListNode*dummy=malloc(sizeof(structListNode));dummy->val=0;dummy->next=head;//定义fastslow双指针structListNode*fast

leetcode——设计循环队列

设计循环队列这个题目在这里小编只分享一个解题思路,因为还有一个思路小编还在尝试,一直过不了,还在这里不断尝试,等我试出来的时候我在分享给大家,首先我们在这里给出的是数组的形式,后面在分享单链表的思路,因为数组在内存上是连续的,这里给出的思路是多开出一个空间的内存,然后我们在进行插入和删除,下面给一个图来给大家来看看。我们可以看到我们这个数组其实是来存储四个字节大小的,但是我们多存储一个int类型大小的空间,如果tail+1==head的话我们就当空间是满的。但是当我们的head是和tail相等的时候我们就可以认为是空的,所以这里多开一个空间的作用就出来了,就是可以保证这两个有区别,如果我们不是