国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【數(shù)據(jù)結(jié)構OJ題】環(huán)形鏈表

這篇具有很好參考價值的文章主要介紹了【數(shù)據(jù)結(jié)構OJ題】環(huán)形鏈表。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

原題鏈接:https://leetcode.cn/problems/linked-list-cycle/description/

目錄

1. 題目描述

2. 思路分析

3. 代碼實現(xiàn)


1. 題目描述

【數(shù)據(jù)結(jié)構OJ題】環(huán)形鏈表,數(shù)據(jù)結(jié)構,數(shù)據(jù)結(jié)構,鏈表,c語言,雙指針,算法,leetcode

2. 思路分析

整體思路:定義快慢指針fast,slow,如果鏈表確實有環(huán),fast指針一定會在環(huán)內(nèi)追上slow指針。

即慢指針一次走一步,快指針一次走兩步,兩個指針從鏈表起始位置開始運行,如果鏈表帶環(huán)則一定會在環(huán)中相遇,否則快指針率先走到鏈表的末尾。

【數(shù)據(jù)結(jié)構OJ題】環(huán)形鏈表,數(shù)據(jù)結(jié)構,數(shù)據(jù)結(jié)構,鏈表,c語言,雙指針,算法,leetcode

我們簡化一下這個問題,用一個線段表示前面的不帶環(huán)部分的鏈表,用一個圓圈表示帶環(huán)部分的鏈表 。

【數(shù)據(jù)結(jié)構OJ題】環(huán)形鏈表,數(shù)據(jù)結(jié)構,數(shù)據(jù)結(jié)構,鏈表,c語言,雙指針,算法,leetcode

?

slow一次走1步,fast一次走2步,一定能追上嗎?(這里的走的步數(shù)可以理解成跳格子)

一定可以追上!

當slow進環(huán)以后,fast開始追及slow,假設入環(huán)時,它們之間的距離是N。每追及1次,它們之間的距離縮小1。當它們之間的距離為0時,就追上了。

【數(shù)據(jù)結(jié)構OJ題】環(huán)形鏈表,數(shù)據(jù)結(jié)構,數(shù)據(jù)結(jié)構,鏈表,c語言,雙指針,算法,leetcode

?

?

擴展:

slow一次走1步,fast一次走3步,一定能追上嗎?

當slow進環(huán)以后,fast開始追及slow,假設入環(huán)時,它們之間的距離是M。每追及1次,它們之間的距離縮小2。我們假設環(huán)的周長是C,這時我們就要分類討論了:

【數(shù)據(jù)結(jié)構OJ題】環(huán)形鏈表,數(shù)據(jù)結(jié)構,數(shù)據(jù)結(jié)構,鏈表,c語言,雙指針,算法,leetcode

由此我們可以知道,得看距離M和環(huán)的周長C的大小來具體情況具體分析!

那么如果slow一次走1步,fast一次走4步呢?

當slow進環(huán)以后,fast開始追及slow,假設入環(huán)時,它們之間的距離是K。每追及1次,它們之間的距離縮小3。我們假設環(huán)的周長是C,這時我們就要分類討論了:

【數(shù)據(jù)結(jié)構OJ題】環(huán)形鏈表,數(shù)據(jù)結(jié)構,數(shù)據(jù)結(jié)構,鏈表,c語言,雙指針,算法,leetcode

?由此我們可以知道,得看距離K和環(huán)的周長C的大小來具體情況具體分析!

3. 代碼實現(xiàn)

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
bool hasCycle(struct ListNode *head) {
    struct ListNode *fast=head,*slow=head;
    while(fast&&fast->next)
    {
        fast=fast->next->next;
        slow=slow->next;
        if(slow==fast)
            return true;
    }
    return false;
}

【數(shù)據(jù)結(jié)構OJ題】環(huán)形鏈表,數(shù)據(jù)結(jié)構,數(shù)據(jù)結(jié)構,鏈表,c語言,雙指針,算法,leetcode文章來源地址http://www.zghlxwxcb.cn/news/detail-662447.html

到了這里,關于【數(shù)據(jù)結(jié)構OJ題】環(huán)形鏈表的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【數(shù)據(jù)結(jié)構和算法初階(C語言)】復雜鏈表(隨機指針,隨機鏈表的復制)題目詳解+鏈表順序表結(jié)尾

    【數(shù)據(jù)結(jié)構和算法初階(C語言)】復雜鏈表(隨機指針,隨機鏈表的復制)題目詳解+鏈表順序表結(jié)尾

    目錄 ?1.隨機鏈表的復制 1.2題目描述? 1.3題目分析 1.4解題: 2.順序表和鏈表對比 2.1cpu高速緩存利用率 3.結(jié)語 一個長度為? n ?的鏈表,每個節(jié)點包含一個額外增加的隨機指針? random ? 該指針可以指向鏈表中的任何節(jié)點或空節(jié)點。? ? ? ? 構造這個鏈表的? 深拷貝 。?深拷貝

    2024年03月10日
    瀏覽(94)
  • C語言每日一題:13《數(shù)據(jù)結(jié)構》環(huán)形鏈表。

    C語言每日一題:13《數(shù)據(jù)結(jié)構》環(huán)形鏈表。

    題目鏈接: 使用快慢指針利用相對移動的思想: 1,令快指針(fast)速度為2. 2.慢指針(slow)速度為1. 3.以慢指針進入環(huán)中開始。 4。假設slow剛剛進入環(huán)中fast與它相距N。 如圖所示: 1,令快指針(fast)速度為3.M 2.慢指針(slow)速度為1. 3.以慢指針進入環(huán)中開始。 4。假設slow剛

    2024年02月14日
    瀏覽(24)
  • 【數(shù)據(jù)結(jié)構與算法】手撕鏈表OJ題

    【數(shù)據(jù)結(jié)構與算法】手撕鏈表OJ題

    給你一個鏈表的頭節(jié)點 head 和一個整數(shù) val ,請你刪除鏈表中所有滿足 Node.val == val 的節(jié)點,并返回 新的頭節(jié)點 思路一 :一種比較普遍的方式,邊遍歷邊找不同。我們可以通過定義兩個指針,一個指向頭節(jié)點,一個置為NULL。當遇到值為相同的時候,直接跳過去。指向下一位

    2024年02月10日
    瀏覽(19)
  • 【數(shù)據(jù)結(jié)構與算法】:10道鏈表經(jīng)典OJ

    【數(shù)據(jù)結(jié)構與算法】:10道鏈表經(jīng)典OJ

    思路1:遍歷原鏈表,將 val 所在的節(jié)點釋放掉。(太麻煩) 思路2:創(chuàng)建新鏈表,再遍歷原鏈表,找到不為 val 的節(jié)點尾插到新鏈表。 思路1代碼實現(xiàn)如下: 注意: 1.當鏈表為空時,直接返回NULL即可。 2.當尾插上最后一個有效節(jié)點時,此時它的 next 可能還與最后一個節(jié)點相鏈接,

    2024年04月14日
    瀏覽(29)
  • 【數(shù)據(jù)結(jié)構】鏈表OJ題(順序表)(C語言實現(xiàn))

    【數(shù)據(jù)結(jié)構】鏈表OJ題(順序表)(C語言實現(xiàn))

    ???????????????? ???????????????? ???????????????????????????????? ???????????????????????????????? ???? 追風趕月莫停留 ???? ???????????????????????????????? ???? 平蕪盡處是春山

    2024年02月05日
    瀏覽(23)
  • (c語言實現(xiàn))數(shù)據(jù)結(jié)構鏈表oj題(2)

    (c語言實現(xiàn))數(shù)據(jù)結(jié)構鏈表oj題(2)

    ??個人主頁:?? :???初階牛??? ??推薦專欄: ??????C語言進階 ??個人信條: ??知行合一 ??本篇簡介::分析力扣中有關鏈表的部分題目. 題目來源于:??途W(wǎng)-題目鏈接 輸入一個鏈表,輸出該鏈表中倒數(shù)第k個結(jié)點。 示例: 輸入:1,{1,2,3,4,5} 返回值:{5} 創(chuàng)建兩個指針: ①

    2024年02月04日
    瀏覽(29)
  • 【數(shù)據(jù)結(jié)構與算法】一套鏈表 OJ 帶你輕松玩轉(zhuǎn)鏈表

    【數(shù)據(jù)結(jié)構與算法】一套鏈表 OJ 帶你輕松玩轉(zhuǎn)鏈表

    ?個人主頁:bit me ?當前專欄:數(shù)據(jù)結(jié)構 ?刷題專欄:基礎算法 ? 簡介: 給你一個鏈表的頭節(jié)點 head 和一個整數(shù) val ,請你刪除鏈表中所有滿足 Node.val == val 的節(jié)點,并返回 新的頭節(jié)點 。 示例1: 輸入:head = [1,2,6,3,4,5,6], val = 6 輸出:[1,2,3,4,5] 示例2: 輸入:head = [], val =

    2024年01月22日
    瀏覽(23)
  • 數(shù)據(jù)結(jié)構與算法----復習Part 8 (鏈表雙指針)

    本系列是算法通關手冊LeeCode的學習筆記 算法通關手冊(LeetCode) | 算法通關手冊(LeetCode) (itcharge.cn) 本系列為自用筆記,如有版權問題,請私聊我刪除。 目錄 一,雙指針簡介(Two Pointers) 二,起點不一致的快慢指針 三,步長不一致的快慢指針 判斷鏈表中是否含有環(huán): 四

    2024年02月19日
    瀏覽(89)
  • 【數(shù)據(jù)結(jié)構與算法】- (帶尾指針)單循環(huán)鏈表 - 詳細實現(xiàn)步驟及代碼(C/C++)

    【數(shù)據(jù)結(jié)構與算法】- (帶尾指針)單循環(huán)鏈表 - 詳細實現(xiàn)步驟及代碼(C/C++)

    前三篇文章分別介紹了 “帶頭結(jié)點單鏈表實現(xiàn)”、“不帶頭結(jié)點單鏈表實現(xiàn)”、“帶頭結(jié)點單循環(huán)鏈表實現(xiàn)”。 這篇文章主要介紹 帶尾指針 的單循環(huán)鏈表以及詳細的實現(xiàn)步驟,最后提供我自己根據(jù)理解實現(xiàn)帶尾指針單循環(huán)鏈表的C語言代碼 。跟著后面實現(xiàn)思路看下去,應該

    2024年02月16日
    瀏覽(41)
  • 數(shù)據(jù)結(jié)構——鏈表OJ題

    數(shù)據(jù)結(jié)構——鏈表OJ題

    目錄 ? 1.給你一個鏈表的頭節(jié)點?head?和一個整數(shù)?val?,請你刪除鏈表中所有滿足?Node.val == val?的節(jié)點,并返回?新的頭節(jié)點?。 2.給定一個帶有頭結(jié)點 head 的非空單鏈表,返回鏈表的中間結(jié)點。如果有兩個中間結(jié)點,則返回第二個中間結(jié)點。 3.變形題:找到鏈表中倒數(shù)第k個

    2024年02月21日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包