原文:如何找出單鏈表中的倒數第k個元素

為了找出倒數第k個元素,最容易想到的辦法是首先遍歷一遍單鏈表,求出整個單鏈表的長度n,然后將倒數第k個,轉換為正數第n k個,接下來遍歷一次就可以得到結果。但是該方法存在一個問題,即需要對鏈表進行兩次遍歷,第一次遍歷用於求解單鏈表的長度,第二次遍歷用於查找正數第n k個元素。 顯然,這種方法還可以進行優化。於是想到了第二種方法,如果從頭至尾的方向從鏈表中的某個元素開始,遍歷k個元素后剛好達到鏈表 ...

2018-06-06 07:36 0 3081 推薦指數:

查看詳情

python經典算法面試題1.5:如何找出鏈表倒數第K元素

本題目摘自《Python程序員面試算法寶典》,我會每天做一道這本書上的題目,並分享出來,統一放在我博客內,收集在一個分類。 【微軟筆試題】 難度系數:⭐⭐⭐ 考察頻率:⭐⭐⭐⭐⭐ 題目描述: 找出鏈表倒數第k元素,例如給定單鏈表:1 -> ...

Tue Oct 29 17:28:00 CST 2019 0 307
鏈表倒數第K個節點

  求鏈表倒數第K個節點:主要思路設置兩個指針,剛開始都指向鏈表的第一個節點,第一個指針先走k-1步,然后兩個一塊走,直到第一個指針的下一位為nullptr,則第二個指針所指的位置就是倒數第k個節點。   在編程書上看見這個方法,自己畫了個鏈表試了試果然是這樣,但是這是個什么原理 ...

Fri Apr 15 03:25:00 CST 2016 0 5162
LeetCode–鏈表倒數第k個節點

LeetCode–鏈表倒數第k個節點 博客說明 文章所涉及的資料來自互聯網整理和個人總結,意在於個人學習和經驗匯總,如有什么地方侵權,請聯系本人刪除,謝謝! 介紹 劍指 Offer 22. 鏈表倒數第k個節點 題目 輸入一個鏈表,輸出該鏈表倒數第k個節點。為了符合 ...

Sat Sep 12 03:21:00 CST 2020 0 671
鏈表倒數第k個節點

題目 輸入一個鏈表,輸出該鏈表倒數第k個結點。為了符合大多數人的習慣,本題從1開始計數,即鏈表的尾結點是倒數第1個結點。例如一個鏈表有6個結點,從頭結點開始它們的值依次是1、2、3、4、5、6。這個鏈表倒數第3個結點是值為4的結點。 解題思路 1.不可行的常規解法   為了得到倒數第k ...

Wed Dec 26 06:55:00 CST 2018 0 1011
【劍指Offer】14、鏈表倒數第k個結點

  題目描述:   輸入一個鏈表,輸出該鏈表倒數第k個結點。為了符合習慣,從1開始計數,即鏈表的尾結點是倒數第1個節點。例如,一個鏈表有6個結點,從頭結點開始,它們的值依次是1,2,3,4,5,6。則這個鏈表倒數第三個結點是值為4的結點。   解題思路:   對於單鏈表來說,沒有從后向 ...

Thu Apr 25 05:13:00 CST 2019 0 532
面試題15:鏈表倒數第K個結點

看到這道題目,最直觀的想法,就是先算出鏈表的長度n,然后倒數第k個結點就是順序的第(n-k+1)個數,不過這樣需要2次遍歷鏈表,如果要求只能遍歷鏈表一次,那么上述算法就不符合要求了。 那我們就使用第二種算法,設定兩個指針p1和p2,兩個指針剛開始都指向鏈表的第一個結點,然后讓p1 ...

Fri Apr 27 21:03:00 CST 2012 1 4468
鏈表查找倒數第k個節點

題目:輸入一個單向鏈表,輸出該鏈表倒數第k個結點。鏈表倒數第0個結點為鏈表的尾指針。 分析:為了得到倒數第k個結點,很自然的想法是先走到鏈表的尾端,再從尾端回溯k步。可是輸入的是單向鏈表,只有從前往后的指針而沒有從后往前的指針。因此我們需要打開我們的思路。既然不能從尾結點開始遍歷這個鏈表 ...

Fri Mar 08 05:00:00 CST 2013 0 8707
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM