Problem: 141. 环形链表
文章目录
- 思路
- Code
思路
首先想到如果链表为空直接返回false
其次想到用双指针,一个一回走一步,另一个一回走两步
如果是环形,总有一个时刻,两指针会指向同一个节点,而且该结点不能为空(空是快指针遍历完单链表了)
Code
/*** Definition for singly-linked list.* class ListNode {* int val;* ListNode next;* ListNode(int x) {* val = x;* next = null;* }* }*/
public class Solution {public boolean hasCycle(ListNode head) {ListNode left = head, right = head;if(head == null){return false;}while(right != null && right.next != null){left = left.next;right = right.next.next;if(left == right && left != null){return true;}}return false;}
}