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;
}
}
相關文章
- 【LeetCode】面試題 01.03. URL化(Java)LeetCode面試題Java
- LeetCode 面試題01.06LeetCode面試題
- 網際網路 Java 工程師面試題(Spring 面試題一)Java工程師面試題Spring
- Java 208 道面試題 · (八)網路Java面試題
- 面試測試題面試
- 測試面試題面試題
- java面試題Java面試題
- 【Java面試】Java常見IO面試題!Java面試題
- 【Java面試】Java設計模式面試題!Java設計模式面試題
- 大型網際網路公司必考java面試題與面試技巧Java面試題
- 100道JAVA面試題+JAVA面試題參考答案Java面試題
- 效能測試面試題面試題
- 【Java面試題】Java面試之多執行緒!Java面試題執行緒
- LeetCode 面試題16.07[最大數值]LeetCode面試題
- leetcode-面試經典150題LeetCode面試
- 【Java面試】JSP常見面試題!JavaJS面試題
- 【Java面試】Servlet常見面試題!JavaServlet面試題
- 【Java面試】 Javascript常見面試題!JavaScript面試題
- 面試題-JAVA反射面試題Java反射
- Java面試題(一)Java面試題
- java 面試題1Java面試題
- JAVA面試題(8)Java面試題
- Java SSM面試題JavaSSM面試題
- 面試題--Java反射面試題Java反射
- 面試題-JAVA IO面試題Java
- Java面試題全集Java面試題
- Java面試題解析Java面試題
- 測試面試問題(二)面試
- 測試面試題總結面試題
- 【彙總】網路安全滲透測試常見面試題!面試題
- LeetCode#面試題 17.10. 主要元素LeetCode面試題
- LeetCode題解(面試02.08):尋找連結串列與環的交點(Python)LeetCode面試Python
- Leetcode每日一題:面試題16.19.水域大小LeetCode每日一題面試題
- Leetcode刷題面試題 16.14. 最佳直線LeetCode面試題
- 【Java面試】Java面試題基礎系列212道(上)Java面試題
- java經典面試題Java面試題
- Java Collection集合面試題Java面試題
- Java面試題整理《上》Java面試題