女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

LeetCode876鏈表的中間結點介紹

算法與數據結構 ? 來源:吳師兄學算法 ? 2023-01-11 17:58 ? 次閱讀

一、題目描述

給定一個頭結點為head的非空單鏈表,返回鏈表的中間結點。

如果有兩個中間結點,則返回第二個中間結點。

示例 1:

輸入:[1,2,3,4,5]
輸出:此列表中的結點 3 (序列化形式:[3,4,5])
返回的結點值為 3 。(測評系統對該結點序列化表述是[3,4,5])。
注意,我們返回了一個 ListNode 類型的對象 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]
輸出:此列表中的結點 4 (序列化形式:[4,5,6])
由于該列表有兩個中間結點,值分別為 3 和 4,我們返回第二個結點。

提示:

給定鏈表的結點數介于1和100之間。

二、題目解析

我個人認為這道題目是最好理解快慢指針這個知識點了。

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

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

1、設置兩個指針,一開始都指向鏈表的頭節點;

2、接下來,讓這兩個指針向前移動;

3、如果可以移動,那么就會讓快指針每次移動兩步,慢指針每次移動一步;

4、而快指針可以移動兩步的前提就是當前節點不為空,同時下一節點也不為空,這樣才能保證 fast.next 有值、fast.next.next 有值

5、最后,slow 指向的就是中間節點。

三、參考代碼

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

//設置兩個指針,一開始都指向鏈表的頭節點
ListNodeslow=head;

ListNodefast=head;

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

//慢指針每次移動一步
slow=slow.next;

//快指針每次移動兩步
fast=fast.next.next;
}

//最后,slow指向的就是中間節點
returnslow;

}
}





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 鏈表
    +關注

    關注

    0

    文章

    80

    瀏覽量

    10785

原文標題:【鏈表篇】LeetCode 876、鏈表的中間結點

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數據結構】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    鏈表結點的數據結構該如何定義

    當用戶需要使用鏈表管理數據時,僅需關聯數據和鏈表結點,最簡單的方式是將數據和鏈表結點打包在一起。
    的頭像 發表于 09-20 16:28 ?1.5w次閱讀
    <b class='flag-5'>鏈表</b><b class='flag-5'>結點</b>的數據結構該如何定義

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

    實際上循環鏈表,無論是頭結點、尾結點還是普通結點,其本質上都是一樣的。
    的頭像 發表于 09-25 14:14 ?6642次閱讀

    數據結構:單鏈表的排序

    給定一個單鏈表的頭結點head(該結點有值),長度為n的無序單鏈表,對其按升序排序后,返回新鏈表。如當輸入
    的頭像 發表于 11-30 13:56 ?1825次閱讀
    數據結構:單<b class='flag-5'>鏈表</b>的排序

    鏈表代碼頭結點數據無效

    //注意:該文件操作的單鏈表為帶頭結點鏈表,頭結點數據無效#include #include #include #define OK 1#define ERROR 0typedef
    發表于 03-27 00:43

    鏈表的缺陷是什么

    鏈表有一定的缺陷,就是單向性,只能從一個結點到下一個節點,而不能訪問到上一個結點,而循環鏈表就可以解決這一問題,當然,用雙向鏈表更加方便#
    發表于 07-14 08:09

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

    ,這個成員變量是一個通用的鏈表結點。二者區別普通的鏈表和侵入式鏈表的區別在于普通的鏈表結點的指針
    發表于 04-11 15:15

    周立功新著內容分享:雙向鏈表是什么?

    單向鏈表的添加、刪除操作,都必須找到當前結點的上一個結點,以便修改上一個結點的p_next指針完成相應的操作。
    的頭像 發表于 09-22 18:24 ?6140次閱讀

    合并兩個排序的鏈表

    合并兩個排序的鏈表一、題目要求 輸入兩個單調遞增的鏈表,輸出兩個鏈表合成后的鏈表,當然我們需要合成后的鏈表滿足單調不減規則。 二、我的思路
    發表于 01-16 22:02 ?633次閱讀

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

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

    C++結構體與鏈表的實驗報告資料免費下載

    本文檔的主要內容詳細介紹的是C++結構體與鏈表的實驗報告資料免費下載。 一、目的和要求1. 掌握結構體類型、結構體變量的基本概念;2. 掌握結構體指針、結構體數組的應用;3. 掌握鏈表的基本概念;4. 掌握
    發表于 05-27 08:00 ?4次下載
    C++結構體與<b class='flag-5'>鏈表</b>的實驗報告資料免費下載

    雙向循環鏈表函數是什么?如何去實現它?

    雙向循環鏈表結點內部有2個指針prev和next分別指向前后的結點結點定義代碼如下。
    的頭像 發表于 06-17 12:50 ?1726次閱讀

    鏈表的基礎知識

    ,也就是數組,數組的每個元素之間的地址是連續的;對于鏈式存儲來說,也就是平常所說的鏈表鏈表每個元素之間的地址并不是連續的,而是分散的,他們之間的聯系通過結點的 next 指針來建立。本文盡可能地將
    的頭像 發表于 01-20 17:00 ?1316次閱讀
    <b class='flag-5'>鏈表</b>的基礎知識

    C語言入門之鏈表概述

    鏈表是一種常見的重要的數據結構。它是動態地進行存儲分配的一種結構,是根據需要開辟內存單元。 鏈表有一個“頭指針”變量,它存放一個地址,該地址指向一個元素。 鏈表中每一個元素稱為“
    的頭像 發表于 03-24 15:04 ?1447次閱讀

    鏈表數據結構基本概念

    鏈表基本概念 頭指針: 頭指針是指鏈表指向第一個結點的指針,若鏈表有頭結點,則是指向頭結點的指針
    的頭像 發表于 07-27 11:14 ?1013次閱讀
    <b class='flag-5'>鏈表</b>數據結構基本概念

    鏈表和雙鏈表的區別在哪里

    鏈表和雙鏈表的區別 單鏈表的每一個節點中只有指向下一個結點的指針,不能進行回溯。 雙鏈表的每一個節點給中既有指向下一個
    的頭像 發表于 07-27 11:20 ?2039次閱讀
    單<b class='flag-5'>鏈表</b>和雙<b class='flag-5'>鏈表</b>的區別在哪里