本文主要是介绍leetcode141~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?
解决链表问题的经典做法:使用俩指针fast和slow,判断最后fast是为null还是fast==slow即可。
public class LinkedListCycle {/** 思路:使用 两个指针slow和fast 看最后有没有相遇*/public boolean hasCycle2(ListNode head) {if(head==null) return false;ListNode slow = head;ListNode fast = head;boolean flag = false;while(fast!=null && fast.next!=null) {slow = slow.next;fast = fast.next.next;if(slow == fast) {flag = true;break;}}return flag;}public boolean hasCycle(ListNode head) {if(head==null || head.next == null) return false;ListNode slow = head;ListNode fast = head.next;while(slow!=fast) {if(fast==null || fast.next==null) {return false;}fast = fast.next.next;slow = slow.next;}return true;}
}
这篇关于leetcode141~Linked List Cycle的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!