LeetCode知识点总结 - 141

LeetCode 141. Linked List Cycle

考点 难度
Hash Table Easy
题目

Given head, the head of a linked list, determine if the linked list has a cycle in it.

There is a cycle in a linked list if there is some node in the list that can be reached again by continuously following the next pointer. Internally, pos is used to denote the index of the node that tail’s next pointer is connected to. Note that pos is not passed as a parameter.

Return true if there is a cycle in the linked list. Otherwise, return false.

思路

按照@jeantimex提供的经典思路:用两个node,一个叫fast,每次前进两位,另一个叫slow,每次前进一位。如果fast == slow就停止循环,返回true。任意一个node等于null时停止,返回false

答案
public boolean hasCycle(ListNode head) {
        ListNode slow = head, fast = head;
  		while (fast != null && fast.next != null) {
    		slow = slow.next;
    		fast = fast.next.next;
    		if (slow == fast) return true;
  }
  		return false;
    }

猜你喜欢

转载自blog.csdn.net/m0_59773145/article/details/120067598