chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

LeetCode876鏈表的中間結(jié)點(diǎn)介紹

算法與數(shù)據(jù)結(jié)構(gòu) ? 來源:吳師兄學(xué)算法 ? 2023-01-11 17:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、題目描述

給定一個(gè)頭結(jié)點(diǎn)為head的非空單鏈表,返回鏈表的中間結(jié)點(diǎn)。

如果有兩個(gè)中間結(jié)點(diǎn),則返回第二個(gè)中間結(jié)點(diǎn)。

示例 1:

輸入:[1,2,3,4,5]
輸出:此列表中的結(jié)點(diǎn) 3 (序列化形式:[3,4,5])
返回的結(jié)點(diǎn)值為 3 。(測(cè)評(píng)系統(tǒng)對(duì)該結(jié)點(diǎn)序列化表述是[3,4,5])。
注意,我們返回了一個(gè) ListNode 類型的對(duì)象 ans,這樣:
ans.val=3,ans.next.val=4,ans.next.next.val=5,以及ans.next.next.next=NULL.

示例 2:

輸入:[1,2,3,4,5,6]
輸出:此列表中的結(jié)點(diǎn) 4 (序列化形式:[4,5,6])
由于該列表有兩個(gè)中間結(jié)點(diǎn),值分別為 3 和 4,我們返回第二個(gè)結(jié)點(diǎn)。

提示:

給定鏈表的結(jié)點(diǎn)數(shù)介于1和100之間。

二、題目解析

我個(gè)人認(rèn)為這道題目是最好理解快慢指針這個(gè)知識(shí)點(diǎn)了。

poYBAGO-iMSAZNB2AABfm8QdN6I280.jpg
pYYBAGO-iMyAIkPvAABaxeo4Lhc600.jpg
pYYBAGO-iNSARFnvAABmXvfrc-c727.jpg

不難理解整體的思路如下:

1、設(shè)置兩個(gè)指針,一開始都指向鏈表的頭節(jié)點(diǎn);

2、接下來,讓這兩個(gè)指針向前移動(dòng);

3、如果可以移動(dòng),那么就會(huì)讓快指針每次移動(dòng)兩步,慢指針每次移動(dòng)一步;

4、而快指針可以移動(dòng)兩步的前提就是當(dāng)前節(jié)點(diǎn)不為空,同時(shí)下一節(jié)點(diǎn)也不為空,這樣才能保證 fast.next 有值、fast.next.next 有值

5、最后,slow 指向的就是中間節(jié)點(diǎn)。

三、參考代碼

// LeetCode 100題精講:https://mp.weixin.qq.com/s/yznC53g46phq3qF7V4-obA
//作者:程序員吳師兄
//鏈表的中間結(jié)點(diǎn)(LeetCode 876):https://leetcode.cn/problems/middle-of-the-linked-list/
classSolution{
publicListNodemiddleNode(ListNodehead){

//設(shè)置兩個(gè)指針,一開始都指向鏈表的頭節(jié)點(diǎn)
ListNodeslow=head;

ListNodefast=head;

//接下來,讓這兩個(gè)指針向前移動(dòng)
//如果可以移動(dòng),那么就會(huì)讓快指針每次移動(dòng)兩步,慢指針每次移動(dòng)一步
//而快指針可以移動(dòng)兩步的前提就是當(dāng)前節(jié)點(diǎn)不為空,同時(shí)下一節(jié)點(diǎn)也不為空
//這樣才能保證fast.next有值、fast.next.next有值
while(fast!=null&&fast.next!=null){

//慢指針每次移動(dòng)一步
slow=slow.next;

//快指針每次移動(dòng)兩步
fast=fast.next.next;
}

//最后,slow指向的就是中間節(jié)點(diǎn)
returnslow;

}
}





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 鏈表
    +關(guān)注

    關(guān)注

    0

    文章

    80

    瀏覽量

    10839

原文標(biāo)題:【鏈表篇】LeetCode 876、鏈表的中間結(jié)點(diǎn)

文章出處:【微信號(hào):TheAlgorithm,微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    鏈表結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)該如何定義

    當(dāng)用戶需要使用鏈表管理數(shù)據(jù)時(shí),僅需關(guān)聯(lián)數(shù)據(jù)和鏈表結(jié)點(diǎn),最簡(jiǎn)單的方式是將數(shù)據(jù)和鏈表結(jié)點(diǎn)打包在一起。
    的頭像 發(fā)表于 09-20 16:28 ?1.5w次閱讀
    <b class='flag-5'>鏈表</b><b class='flag-5'>結(jié)點(diǎn)</b>的數(shù)據(jù)結(jié)構(gòu)該如何定義

    周立功闡釋高效的雙向鏈表如何用

    實(shí)際上循環(huán)鏈表,無論是頭結(jié)點(diǎn)、尾結(jié)點(diǎn)還是普通結(jié)點(diǎn),其本質(zhì)上都是一樣的。
    的頭像 發(fā)表于 09-25 14:14 ?6688次閱讀

    數(shù)據(jù)結(jié)構(gòu):?jiǎn)?b class='flag-5'>鏈表的排序

    給定一個(gè)單鏈表的頭結(jié)點(diǎn)head(該結(jié)點(diǎn)有值),長(zhǎng)度為n的無序單鏈表,對(duì)其按升序排序后,返回新鏈表。如當(dāng)輸入
    的頭像 發(fā)表于 11-30 13:56 ?1904次閱讀
    數(shù)據(jù)結(jié)構(gòu):?jiǎn)?b class='flag-5'>鏈表</b>的排序

    鏈表代碼頭結(jié)點(diǎn)數(shù)據(jù)無效

    //注意:該文件操作的單鏈表為帶頭結(jié)點(diǎn)鏈表,頭結(jié)點(diǎn)數(shù)據(jù)無效#include #include #include #define OK 1#define ERROR 0typedef
    發(fā)表于 03-27 00:43

    鏈表的缺陷是什么

    鏈表有一定的缺陷,就是單向性,只能從一個(gè)結(jié)點(diǎn)到下一個(gè)節(jié)點(diǎn),而不能訪問到上一個(gè)結(jié)點(diǎn),而循環(huán)鏈表就可以解決這一問題,當(dāng)然,用雙向鏈表更加方便#
    發(fā)表于 07-14 08:09

    在RT-Thread中普通鏈表和侵入式鏈表有何區(qū)別

    ,這個(gè)成員變量是一個(gè)通用的鏈表結(jié)點(diǎn)。二者區(qū)別普通的鏈表和侵入式鏈表的區(qū)別在于普通的鏈表結(jié)點(diǎn)的指針
    發(fā)表于 04-11 15:15

    周立功新著內(nèi)容分享:雙向鏈表是什么?

    單向鏈表的添加、刪除操作,都必須找到當(dāng)前結(jié)點(diǎn)的上一個(gè)結(jié)點(diǎn),以便修改上一個(gè)結(jié)點(diǎn)的p_next指針完成相應(yīng)的操作。
    的頭像 發(fā)表于 09-22 18:24 ?6192次閱讀

    合并兩個(gè)排序的鏈表

    合并兩個(gè)排序的鏈表一、題目要求 輸入兩個(gè)單調(diào)遞增的鏈表,輸出兩個(gè)鏈表合成后的鏈表,當(dāng)然我們需要合成后的鏈表滿足單調(diào)不減規(guī)則。 二、我的思路
    發(fā)表于 01-16 22:02 ?647次閱讀

    以后再也不怕別人問「單鏈表」的問題啦

    「頭指針」顧名思義,是指向鏈表第一個(gè)結(jié)點(diǎn)的指針,如果有頭結(jié)點(diǎn)的話,那么就是指向頭結(jié)點(diǎn)的指針。它是鏈表的必備元素且無論
    的頭像 發(fā)表于 11-23 11:30 ?2607次閱讀
    以后再也不怕別人問「單<b class='flag-5'>鏈表</b>」的問題啦

    C++結(jié)構(gòu)體與鏈表的實(shí)驗(yàn)報(bào)告資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是C++結(jié)構(gòu)體與鏈表的實(shí)驗(yàn)報(bào)告資料免費(fèi)下載。 一、目的和要求1. 掌握結(jié)構(gòu)體類型、結(jié)構(gòu)體變量的基本概念;2. 掌握結(jié)構(gòu)體指針、結(jié)構(gòu)體數(shù)組的應(yīng)用;3. 掌握鏈表的基本概念;4. 掌握
    發(fā)表于 05-27 08:00 ?4次下載
    C++結(jié)構(gòu)體與<b class='flag-5'>鏈表</b>的實(shí)驗(yàn)報(bào)告資料免費(fèi)下載

    雙向循環(huán)鏈表函數(shù)是什么?如何去實(shí)現(xiàn)它?

    雙向循環(huán)鏈表結(jié)點(diǎn)內(nèi)部有2個(gè)指針prev和next分別指向前后的結(jié)點(diǎn)結(jié)點(diǎn)定義代碼如下。
    的頭像 發(fā)表于 06-17 12:50 ?1773次閱讀

    鏈表的基礎(chǔ)知識(shí)

    ,也就是數(shù)組,數(shù)組的每個(gè)元素之間的地址是連續(xù)的;對(duì)于鏈?zhǔn)酱鎯?chǔ)來說,也就是平常所說的鏈表,鏈表每個(gè)元素之間的地址并不是連續(xù)的,而是分散的,他們之間的聯(lián)系通過結(jié)點(diǎn)的 next 指針來建立。本文盡可能地將
    的頭像 發(fā)表于 01-20 17:00 ?1438次閱讀
    <b class='flag-5'>鏈表</b>的基礎(chǔ)知識(shí)

    C語言入門之鏈表概述

    鏈表是一種常見的重要的數(shù)據(jù)結(jié)構(gòu)。它是動(dòng)態(tài)地進(jìn)行存儲(chǔ)分配的一種結(jié)構(gòu),是根據(jù)需要開辟內(nèi)存單元。 鏈表有一個(gè)“頭指針”變量,它存放一個(gè)地址,該地址指向一個(gè)元素。 鏈表中每一個(gè)元素稱為“結(jié)
    的頭像 發(fā)表于 03-24 15:04 ?1488次閱讀

    鏈表數(shù)據(jù)結(jié)構(gòu)基本概念

    鏈表基本概念 頭指針: 頭指針是指鏈表指向第一個(gè)結(jié)點(diǎn)的指針,若鏈表有頭結(jié)點(diǎn),則是指向頭結(jié)點(diǎn)的指針
    的頭像 發(fā)表于 07-27 11:14 ?1071次閱讀
    <b class='flag-5'>鏈表</b>數(shù)據(jù)結(jié)構(gòu)基本概念

    鏈表和雙鏈表的區(qū)別在哪里

    鏈表和雙鏈表的區(qū)別 單鏈表的每一個(gè)節(jié)點(diǎn)中只有指向下一個(gè)結(jié)點(diǎn)的指針,不能進(jìn)行回溯。 雙鏈表的每一個(gè)節(jié)點(diǎn)給中既有指向下一個(gè)
    的頭像 發(fā)表于 07-27 11:20 ?2121次閱讀
    單<b class='flag-5'>鏈表</b>和雙<b class='flag-5'>鏈表</b>的區(qū)別在哪里