已知链表,请检测是否存在环,并将入口节点作为结果返回
发布时间
阅读量:
阅读量
基本思路:我们通过设置两个指针来进行遍历操作。
主要方法:通过设置两个指针来进行遍历操作。
其中一种方法是将两个不同的变量分别作为快慢指针:
- 快速遍历的变量每次会移动两位位置
- 缓慢遍历的变量则每次仅移动一位位置
这样一来,在非循环链表的情况下: - 快速遍历的变量将会最先抵达列表末端
而当链表中存在一个循环时: - 快慢两个变量将会在某一点相遇
时间复杂度? O(N)
空间复杂度?O(1)

具体实现代码:
/** * Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public boolean has
全部评论 (0)
还没有任何评论哟~
