leetcode 面試題02.08.環路檢測 Java
題目連結
https://leetcode-cn.com/problems/linked-list-cycle-lcci/
描述
給定一個連結串列,如果它是有環連結串列,實現一個演算法返回環路的開頭節點。
有環連結串列的定義:在連結串列中某個節點的next元素指向在它前面出現過的節點,則表明該連結串列存在環路。
進階:
你是否可以不用額外空間解決此題?
示例
示例 1:
輸入:head = [3,2,0,-4], pos = 1
輸出:tail connects to node index 1
解釋:連結串列中有一個環,其尾部連線到第二個節點。
示例 2:
輸入:head = [1,2], pos = 0
輸出:tail connects to node index 0
解釋:連結串列中有一個環,其尾部連線到第一個節點。
示例 3:
輸入:head = [1], pos = -1
輸出:no cycle
解釋:連結串列中沒有環。
初始程式碼模板
/**
* Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode detectCycle(ListNode head) {
}
}
程式碼
這麼做為什麼可以,看圖就可以:
/**
* Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode detectCycle(ListNode head) {
ListNode slow = head;
ListNode fast = head;
while (fast != null && fast.next != null) {
fast = fast.next.next;
slow = slow.next;
if (fast == slow) {
break;
}
}
if (fast == null || fast.next == null) {
return null;
}
fast = head;
while (fast != slow) {
fast = fast.next;
slow = slow.next;
}
return slow;
}
}
相關文章
- Linked List Cycle leetcode java (連結串列檢測環)LeetCodeJava
- 【LeetCode】面試題 01.03. URL化(Java)LeetCode面試題Java
- 面試題—Java遞迴實現約瑟夫環面試題Java遞迴
- 《劍指offer》JAVA題解,LeetCode評測JavaLeetCode
- 網際網路 Java 工程師面試題(Spring 面試題一)Java工程師面試題Spring
- 交換機通過Loopback Detection檢測(裝置所在網路環路)OOP
- 大型網際網路公司必考java面試題與面試技巧Java面試題
- 如何在 Java 中實現無向環和有向環的檢測Java
- Java 208 道面試題 · (八)網路Java面試題
- java面試題Java面試題
- oracle rac 環境檢測Oracle
- 【Java面試】Java常見IO面試題!Java面試題
- 【Java面試】Java設計模式面試題!Java設計模式面試題
- JAVA面試題 java部分Java面試題
- 測試面試題面試題
- 面試測試題面試
- 100道JAVA面試題+JAVA面試題參考答案Java面試題
- LeetCode 面試題01.06LeetCode面試題
- 【Java面試題】Java面試之多執行緒!Java面試題執行緒
- 如何檢測圖中的環?
- Java SSM面試題JavaSSM面試題
- Java面試題解析Java面試題
- JAVA面試題(8)Java面試題
- java 面試題1Java面試題
- Java面試題(一)Java面試題
- Java 面試題集Java面試題
- java面試問題Java面試
- Java面試題全集Java面試題
- 阿里java面試題阿里Java面試題
- Java集合---面試題Java面試題
- Java面試題收集Java面試題
- Java面試試題Java面試
- java面試題大全Java面試題
- 面試題-JAVA反射面試題Java反射
- 面試題-JAVA IO面試題Java
- JAVA面試題-CORE JAVA部分Java面試題
- leetcode 455題 javaLeetCodeJava
- 【Java面試】 Javascript常見面試題!JavaScript面試題