力扣days02 链表
已经覆盖了链表的常见操作,是练习链表操作非常好的一道题目;
再定义一个新的链表,实现链表元素的反转,是对内存空间的浪费。
1、只需要使用双指针,改变链表的next指针的指向,直接将链表反转 ,而不用重新定义一个新的链表。
2、进阶:递归法(从前往后,从后往前递归);
3、利用栈的先进后出;

双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了。
对链表的操作一般需要考虑头节点;对头节点的删除,还是建议使用虚拟头节点的方法,便于统一操作;
这里,快指针走n+1步,主要是防止n大于链表长度时,当fast指向空时下一个结点为空,对空指针操作会出错;

简单来说,就是求两个链表交点节点的指针,交点不是数值相等,而是指针相等(末尾开始的相等)。
1、先判断是否存在环
2、存在环则找到环的入口

浙公网安备 33010602011771号