链表环路检查
一、标记节点
遍历节点,访问过的节点标记一下。
1.1、缺点
对节点有侵入,必须定义一个标记。
二、使用哈希表
遍历节点,将访问过的节点记录在哈希表中。
2.1、缺点
需要额外的哈希表的存储空间。
三、、链表回溯
遍历链表,每遍历一个节点,从头回溯,如果回溯发现到指定节点前,有节点等于指定节点的next节点,则表示有环。
四、链表反转
遍历并反转链表,如果回到头节点表示有环。
五、龟兔赛跑算法
使用不同速度遍历链表,如果速度慢的追上速度快的表示有环。
5.1、缺点
比较难想出来
遍历节点,访问过的节点标记一下。
对节点有侵入,必须定义一个标记。
遍历节点,将访问过的节点记录在哈希表中。
需要额外的哈希表的存储空间。
遍历链表,每遍历一个节点,从头回溯,如果回溯发现到指定节点前,有节点等于指定节点的next节点,则表示有环。
遍历并反转链表,如果回到头节点表示有环。
使用不同速度遍历链表,如果速度慢的追上速度快的表示有环。
比较难想出来