演算法141. 環形連結串列
1. 題目描述
給定一個連結串列,判斷連結串列中是否有環。
為了表示給定連結串列中的環,我們使用整數 pos 來表示連結串列尾連線到連結串列中的位置(索引從 0 開始)。 如果 pos 是 -1,則在該連結串列中沒有環。
示例 1:
輸入:head = [3,2,0,-4], pos = 1
輸出:true
解釋:連結串列中有一個環,其尾部連線到第二個節點。
示例 2:
輸入:head = [1,2], pos = 0
輸出:true
解釋:連結串列中有一個環,其尾部連線到第一個節點。
示例 3:
輸入:head = [1], pos = -1
輸出:false
解釋:連結串列中沒有環。
進階:
你能用 O(1)(即,常量)記憶體解決此問題嗎?
來源:力扣(LeetCode)
連結:
https://leetcode-cn.com/problems/linked-list-cycle
2. 解題思路
/*
解題思路:
解法一、雙指標法
1、設定一個快指標fast:一次走兩步
2、設定一個慢指標slow:一次走一步
3、如果存在環連結串列,則fast和slow會重合
4、否則不存在環連結串列
*/
3. 測試結果
解法一、雙指標法
4. C版
/*
title: 演算法141. 環形連結串列
author: xidoublestar
method: 雙指標法
type: C
date: 2020-5-25
*/
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
bool hasCycle(struct ListNode* head) {
if (head == NULL)
return false;
struct ListNode* fast = head->next, * slow = head;
while (fast && fast->next) {
fast = fast->next->next;
slow = slow->next;
if (fast == slow)
return true;
}
return false;
}
6. 複雜度分析
解法一、雙指標法
時間複雜度:O(n)
空間複雜度:O(1)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31442014/viewspace-2694288/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 141. 環形連結串列
- 環形連結串列
- 環形連結串列II
- 每日演算法隨筆:環形連結串列演算法
- 142. 環形連結串列
- 【圖解連結串列類面試題】環形連結串列圖解面試題
- 資料結構與演算法——連結串列 Linked List(單連結串列、雙向連結串列、單向環形連結串列-Josephu 問題)資料結構演算法
- 2024/12/2【連結串列】LeetCode 142 環形連結串列 II 【X】LeetCode
- 環形連結串列_相交連結串列_多數元素(java語言)Java
- Leetcode-142. 環形連結串列 IILeetCode
- 判斷是否為環形連結串列
- LeetCode-142-環形連結串列 IILeetCode
- Python實現環形連結串列詳解Python
- 每日leetcode——142. 環形連結串列 IILeetCode
- Q22 LeetCode142 環形連結串列LeetCode
- [演算法]向有序的環形單連結串列中插入新節點演算法
- 程式碼隨想錄演算法訓練營第4天 | 連結串列兩兩交換、刪除倒N、連結串列相交、環形連結串列演算法
- java環形連結串列約瑟夫環問題筆記Java筆記
- 環形連結串列I、II(含程式碼以及證明)
- 演算法題:反轉一個單連結串列&判斷連結串列是否有環演算法
- 力扣學習筆記:142. 環形連結串列 II力扣筆記
- 單連結串列成環
- 演算法-連結串列演算法
- 連結串列有環知多少~
- 把玩演算法 | 連結串列演算法
- Day4(連結串列)|24. 兩兩交換連結串列中的節點 & 19.刪除連結串列的倒數第N個節點 & 面試題 02.07. 連結串列相交 &142.環形連結串列II面試題
- 連結串列中環的入口結點
- **24. 兩兩交換連結串列中的節點****19.刪除連結串列的倒數第N個節點****面試題 02.07. 連結串列相交****142.環形連結串列II**面試題
- 結構與演算法(03):單向連結串列和雙向連結串列演算法
- 程式碼隨想錄演算法訓練營第四天 | 連結串列 24.兩兩交換連結串列中的節點 19.刪除連結串列的倒數第N個節點 142.環形連結串列II演算法
- 連結串列找環(python實現)Python
- 初級演算法-連結串列演算法
- 力扣--連結串列演算法力扣演算法
- 演算法基礎~連結串列~排序連結串列的合併(k條)演算法排序
- 【小白學演算法】5.連結串列(linked list)、連結串列的新增演算法
- LeetCode 之 JavaScript 解答第141題 —— 環形連結串列 I(Linked List Cycle I)LeetCodeJavaScript
- Day 4 | 24. 兩兩交換連結串列中的節點 、 19.刪除連結串列的倒數第N個節點 、面試題 02.07. 連結串列相交 、142.環形連結串列II面試題
- 程式碼隨想錄演算法訓練營day04|24.兩兩交換連結串列中的節點,19.刪除連結串列的倒數第N個節點,面試題 02.07.連結串列相交,142.環形連結串列II演算法面試題