輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。
用兩個指標,指標p、q最開始都指向 head,p 先向右移動 k 位,然後 p 和 q 再一起同步向右移動,當 p 到達邊界時(p指向空), q 正好指向了倒數第 k 個結點
做完這些還不能通過牛客網的測試,因為出現了 k 會大於整個鍊錶長度的情況,因此在 p 向右邊移動的時候做出判斷,如果在移動到 k 位之前 p 就已經到達邊界了,那麼直接返回空即可
class
solution
:def
findkthtotail
(self, head, k)
:# write code here
p = head
q = head
i =0while i < k:
#如果在移動到 k 位之前 p 就已經到達邊界了,那麼直接返回空即可
if p is
none
:return
none
p = p.
next
i +=
1while p:
p = p.
next
q = q.
next
return q
劍指Offer刷題 鍊錶
劍指 offer 18.刪除鍊錶的節點 難度簡單 給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點。返回刪除後的鍊錶的頭節點。注意 此題對比原題有改動 示例 1 輸入 head 4,5,1,9 val 5 輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的...
劍指offer刷題日記 鍊錶
鍊錶03 從尾到頭列印鍊錶 python 採用insert方法 class solution def printlist self,listnode if not listnode return result while listnode result.insert 0 listnode.val l...
《劍指offer》刷題(1)鍊錶
最近二刷 劍指offer 的題目,寫寫其中關於鍊錶的解題思路 劍指offer18題 需要兩個指標,pre儲存刪除節點的前驅指標,cur儲存要刪除節點的指標 public listnode deletenode listnode head,int val if cur null return dumm...