876. 鏈表的中間結(jié)點(diǎn)(Python)

題目

難度:★☆☆☆☆
類型:鏈表

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

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

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

示例

示例 1
輸入:[1,2,3,4,5]
輸出:此列表中的結(jié)點(diǎn) 3 (序列化形式:[3,4,5])
返回的結(jié)點(diǎn)值為 3 供汛。 (測評(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)趁舀。

解答

方案1:統(tǒng)計(jì)長度

我們可以統(tǒng)計(jì)鏈表的長度赖捌,然后再次遍歷,將一半長度處的結(jié)點(diǎn)取出矮烹。

class Solution:
    def middleNode(self, head):
        """
        :param head: ListNode
        :return: ListNode
        """
        def get_len(node):
            tmp = node
            count = 0
            while tmp:
                count += 1
                tmp = tmp.next
            return count

        def get_node(node, idx):
            tmp = node
            count = 0
            while count < idx:
                count += 1
                tmp = tmp.next
            return tmp

        return get_node(head, get_len(head)//2)

方案2:快慢指針

定義快慢指針越庇,同時(shí)從頭結(jié)點(diǎn)開始向后遍歷,快指針每次走兩步奉狈,慢指針每次走一步卤唉,當(dāng)快指針走到末尾結(jié)點(diǎn)時(shí),慢指針恰好走到中間結(jié)點(diǎn)仁期。

class Solution:
    def middleNode(self, head):
        """
        :param head: ListNode
        :return: ListNode
        """
        fast = slow = head
        while fast and fast.next:
            fast = fast.next.next
            slow = slow.next
        return slow

如有疑問或建議桑驱,歡迎評(píng)論區(qū)留言~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市跛蛋,隨后出現(xiàn)的幾起案子熬的,更是在濱河造成了極大的恐慌,老刑警劉巖赊级,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件押框,死亡現(xiàn)場離奇詭異,居然都是意外死亡理逊,警方通過查閱死者的電腦和手機(jī)橡伞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門盒揉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人骑歹,你說我怎么就攤上這事预烙。” “怎么了道媚?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長翘县。 經(jīng)常有香客問我最域,道長,這世上最難降的妖魔是什么锈麸? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任镀脂,我火速辦了婚禮,結(jié)果婚禮上忘伞,老公的妹妹穿的比我還像新娘薄翅。我一直安慰自己,他們只是感情好氓奈,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布翘魄。 她就那樣靜靜地躺著,像睡著了一般舀奶。 火紅的嫁衣襯著肌膚如雪暑竟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天育勺,我揣著相機(jī)與錄音但荤,去河邊找鬼。 笑死涧至,一個(gè)胖子當(dāng)著我的面吹牛腹躁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播南蓬,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼纺非,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了蓖康?” 一聲冷哼從身側(cè)響起铐炫,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蒜焊,沒想到半個(gè)月后倒信,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡泳梆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年鳖悠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了榜掌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乘综,死狀恐怖憎账,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情卡辰,我是刑警寧澤胞皱,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站九妈,受9級(jí)特大地震影響反砌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜萌朱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一宴树、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧晶疼,春花似錦酒贬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至壶运,卻和暖如春耐齐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蒋情。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國打工埠况, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人棵癣。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓辕翰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親狈谊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子喜命,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 876.鏈表的中間結(jié)點(diǎn)給定一個(gè)帶有頭結(jié)點(diǎn) head 的非空單鏈表,返回鏈表的中間結(jié)點(diǎn)河劝。如果有兩個(gè)中間結(jié)點(diǎn)壁榕,則返回第...
    成長和自由之路閱讀 138評(píng)論 0 1
  • 數(shù)據(jù)結(jié)構(gòu)與算法 一 簡介 單鏈表中的每個(gè)結(jié)點(diǎn)不僅包含值,還包含鏈接到下一個(gè)結(jié)點(diǎn)的引用字段赎瞎。image 1.1 結(jié)點(diǎn)...
    凱玲之戀閱讀 27,688評(píng)論 1 15
  • 時(shí)間仍在牌里,只是我們已飛逝 兩行 僵局 磨練智慧的戰(zhàn)場,打開欺詐之門 讓魔鬼和斗士見面,爭奪結(jié)的鑰匙 實(shí)話 躲閃是它...
    你不懂夜的黑閱讀 768評(píng)論 8 31
  • 發(fā)現(xiàn)問題 前幾天把手機(jī)系統(tǒng)升級(jí)到基于 Android 7.0牡辽,后來在升級(jí)調(diào)試一個(gè)應(yīng)用時(shí)拋出如下異常信息: 根據(jù)如上...
    SkyRiN閱讀 4,913評(píng)論 2 8
  • 2019-04-18-09:53:于公司 需要處理哪些異常喳篇? 對(duì)于前端來說,我們可做的異常捕獲還真不少态辛◆锢剑總結(jié)一下,...
    Allan要做活神仙閱讀 1,167評(píng)論 2 3