首页 > 代码库 > Leetcode: Linked List Cycle

Leetcode: Linked List Cycle

Given a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?

Analysis: typical Runner Technique. 一次过

 1 /** 2  * Definition for singly-linked list. 3  * class ListNode { 4  *     int val; 5  *     ListNode next; 6  *     ListNode(int x) { 7  *         val = x; 8  *         next = null; 9  *     }10  * }11  */12 public class Solution {13     public boolean hasCycle(ListNode head) {14         ListNode current = head;15         ListNode runner = head;16         if (head == null || head.next == null || head.next.next == null) return false;17         current = head.next;18         runner = head.next.next;19         while (runner != current && runner.next != null && runner.next.next != null) {20             runner = runner.next.next;21             current = current.next;22         }23         if (runner == current) return true;24         return false;25     }26 }