力扣解题小思-6

接着再来一个链表的题目,这里是一个检测环形链表的题目,就是说这不是一个单向链表,而是在环形链表的基础上,将最尾端的节点的指针指向了前面的其中一个节点,但是具体是哪个节点并不是很清楚,然后需要判断这个链表到底其中有没有相连的环,这个应该如何判断呢,可以检测之前的指针有没有重复,但是如何来实现呢,是不是可以定义一个指针数组,在遍历的过程中将节点的指针存在这个数组中,然后再一个个地进行遍历地对比,如果对比出来了,那就说明存在,如果直到最后都没有对比出来,那就说明没有。这里就需要对指针数组的概念有所了解了,而为了了解这方面的知识,需要直到数组指针和指针数组的区别。
简单来说,数组指针就是一个数组的指针,这个指针指向的是这整个数组,在定义的过程中,变量名是和符号*用括号放在一起的,说明只存在一个指针类型的变量,而对于指针数组来说,就是由很多个指针组成了数组。按照这种思路做,最后做出来了,其中犯了一些小错误,就是指针数组的类型被我弄成了整型,但实际上就是指向结构体的类型,然后一开始将数组的大小定义为100,但是太小了,定义为1000还是太小了,最后定义为10000才成功了。
在看别人的解法的时候发现了另一种思路,就是通过快慢指针的方法,也即快指针要比慢指针快一步,然后当出现了环形链表的时候,慢指针需要一定的时间才能追上快指针,但是要判断不是单向链表,这时候应该加一个判断,就是说如果快指针到达最后也就是空指针的话就结束了,也就是没有环形链表,如果没有空指针但是慢指针追上快指针的话,那就意味着存在环形。

posted @ 2026-03-30 19:57  getacat  阅读(1)  评论(0)    收藏  举报