摘要:如果有兩個(gè)中間結(jié)點(diǎn),則返回第二個(gè)中間結(jié)點(diǎn)。示例輸入輸出此列表中的結(jié)點(diǎn)序列化形式返回的結(jié)點(diǎn)值為。測(cè)評(píng)系統(tǒng)對(duì)該結(jié)點(diǎn)序列化表述是。提示給定鏈表的結(jié)點(diǎn)數(shù)介于和之間。
給定一個(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 之間。
思路:
設(shè)置兩個(gè)指向頭節(jié)點(diǎn)的快慢指針,快指針每次走兩步,慢指針每次走一步,當(dāng)快指針到達(dá)最后結(jié)點(diǎn)或?yàn)榭諘r(shí),慢指針指向的就是中間結(jié)點(diǎn) 。
解題代碼Python 3:
# Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def middleNode(self, head): """ :type head: ListNode :rtype: ListNode """ pa=pb=head while pa and pb.next: if pb.next.next==None: return pa.next pa=pa.next pb=pb.next.next return pa
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/42196.html
摘要:題目鏈接題目分析返回一個(gè)鏈表中最中間的元素。思路先全部塞入數(shù)組,再根據(jù)長(zhǎng)度得到中間元素的下標(biāo),再返回。最終代碼若覺得本文章對(duì)你有用,歡迎用愛發(fā)電資助。 876. Middle of the Linked List 題目鏈接 876. Middle of the Linked List 題目分析 返回一個(gè)鏈表中最中間的元素。 思路 先全部塞入數(shù)組,再根據(jù)長(zhǎng)度/2得到中間元素的下標(biāo),再返回...
摘要:愛寫設(shè)計(jì)鏈表的實(shí)現(xiàn)。單鏈表中的節(jié)點(diǎn)應(yīng)該具有兩個(gè)屬性和。插入后,新節(jié)點(diǎn)將成為鏈表的第一個(gè)節(jié)點(diǎn)。將值為的節(jié)點(diǎn)追加到鏈表的最后一個(gè)元素。如果等于鏈表的長(zhǎng)度,則該節(jié)點(diǎn)將附加到鏈表的末尾。如果索引有效,則刪除鏈表中的第個(gè)節(jié)點(diǎn)。操作次數(shù)將在之內(nèi)。 愛寫bug (ID:iCodeBugs) 設(shè)計(jì)鏈表的實(shí)現(xiàn)。您可以選擇使用單鏈表或雙鏈表。單鏈表中的節(jié)點(diǎn)應(yīng)該具有兩個(gè)屬性:val 和 next。val 是...
摘要:愛寫設(shè)計(jì)鏈表的實(shí)現(xiàn)。單鏈表中的節(jié)點(diǎn)應(yīng)該具有兩個(gè)屬性和。插入后,新節(jié)點(diǎn)將成為鏈表的第一個(gè)節(jié)點(diǎn)。將值為的節(jié)點(diǎn)追加到鏈表的最后一個(gè)元素。如果等于鏈表的長(zhǎng)度,則該節(jié)點(diǎn)將附加到鏈表的末尾。如果索引有效,則刪除鏈表中的第個(gè)節(jié)點(diǎn)。操作次數(shù)將在之內(nèi)。 愛寫bug (ID:iCodeBugs) 設(shè)計(jì)鏈表的實(shí)現(xiàn)。您可以選擇使用單鏈表或雙鏈表。單鏈表中的節(jié)點(diǎn)應(yīng)該具有兩個(gè)屬性:val 和 next。val 是...
摘要:示例輸入輸出輸入解釋相交節(jié)點(diǎn)的值為注意,如果兩個(gè)列表相交則不能為。解釋這兩個(gè)鏈表不相交,因此返回。注意如果兩個(gè)鏈表沒有交點(diǎn),返回在返回結(jié)果后,兩個(gè)鏈表仍須保持原有的結(jié)構(gòu)。此時(shí)將指向鏈表長(zhǎng)鏈表的頭節(jié)點(diǎn),不變。 愛寫B(tài)ug(ID:iCodeBugs) 編寫一個(gè)程序,找到兩個(gè)單鏈表相交的起始節(jié)點(diǎn)。 Write a program to find the node at which the i...
摘要:示例輸入輸出輸入解釋相交節(jié)點(diǎn)的值為注意,如果兩個(gè)列表相交則不能為。解釋這兩個(gè)鏈表不相交,因此返回。注意如果兩個(gè)鏈表沒有交點(diǎn),返回在返回結(jié)果后,兩個(gè)鏈表仍須保持原有的結(jié)構(gòu)。此時(shí)將指向鏈表長(zhǎng)鏈表的頭節(jié)點(diǎn),不變。 愛寫B(tài)ug(ID:iCodeBugs) 編寫一個(gè)程序,找到兩個(gè)單鏈表相交的起始節(jié)點(diǎn)。 Write a program to find the node at which the i...
閱讀 1041·2021-09-13 10:29
閱讀 3392·2019-08-29 18:31
閱讀 2634·2019-08-29 11:15
閱讀 3013·2019-08-26 13:25
閱讀 1370·2019-08-26 12:00
閱讀 2293·2019-08-26 11:41
閱讀 3377·2019-08-26 10:31
閱讀 1489·2019-08-26 10:25