題目 輸入一個鏈表,輸出該鏈表中倒數第k個結點。為了符合大多數人的習慣,本題從1開始計數,即鏈表的尾結點是倒數第1個結點。例如一個鏈表有6個結點,從頭結點開始它們的值依次是1、2、3、4、5、6。這個鏈表的倒數第3個結點是值為4的結點。 解題思路 1.不可行的常規解法 為了得到倒數第k ...
我們在做算法的時候或多或少都會遇到這樣的問題,那就是我們需要獲取某一個數據集的倒數或者正數第幾個數據。那么今天我們來看一下這個問題,怎么去獲取倒數第K個節點。我們拿到這個問題的時候自然而然會想到我們讓鏈表從末尾開始next K 次不就是第K 個節點了么,但是必須要注意一點,這是單向鏈表。那么這時候的解決思路或許就會出現分歧,大多數人都會想到我們遍歷一下鏈表,獲取鏈表的長度,然后再減去 K 長度的 ...
2017-12-06 20:28 0 977 推薦指數:
題目 輸入一個鏈表,輸出該鏈表中倒數第k個結點。為了符合大多數人的習慣,本題從1開始計數,即鏈表的尾結點是倒數第1個結點。例如一個鏈表有6個結點,從頭結點開始它們的值依次是1、2、3、4、5、6。這個鏈表的倒數第3個結點是值為4的結點。 解題思路 1.不可行的常規解法 為了得到倒數第k ...
求鏈式線性表的倒數第K項 給定一系列正整數,請設計一個盡可能高效的算法,查找倒數第K個位置上的數字。 輸入格式: 輸入首先給出一個正整數K,隨后是若干非負整數,最后以一個負整數表示結尾(該負數不算在序列內,不要處理)。 輸出格式: 輸出倒數第K個位置上的數據。如果這個位 ...
題目:輸入一個單向鏈表,輸出該鏈表中倒數第k個結點。鏈表的倒數第0個結點為鏈表的尾指針。 分析:為了得到倒數第k個結點,很自然的想法是先走到鏈表的尾端,再從尾端回溯k步。可是輸入的是單向鏈表,只有從前往后的指針而沒有從后往前的指針。因此我們需要打開我們的思路。既然不能從尾結點開始遍歷這個鏈表 ...
求單鏈表倒數第K個值 題目: 找出單鏈表的倒數第K個元素,比如給定單鏈表:1->2->3->4->5,則鏈表的倒數第2個元素為4 構造一個簡單的單鏈表 思路 1、順序遍歷兩遍法 2、使用快慢指針 ...
題目:給定一個鏈表的頭節點,輸出鏈表倒數第k個節點的值 分析:最簡單的思路就按順序訪問鏈表節點,得到鏈表的長度x之后,再次從頭節點出發,訪問到第x-k+1個節點時,就是鏈表倒數第k個節點,但是這樣的方法對前x-k+1個節點重復訪問了兩遍,效率較低。在解答鏈表相關題目時,設置兩個甚至三個 ...
在單鏈表和雙鏈表中刪除倒數第K個節點 分別實現兩個函數,一個可以刪除單鏈表中的倒數第K個節點,一個可以刪除雙鏈表中的倒數第k 個節點,要求時間復雜度是 O(N),空間復雜度是 O(1)。 【解析】 基本思路: 讓鏈表從頭開始走到尾,每移動一步,就讓k值減 ...
求鏈表的倒數第K個節點:主要思路設置兩個指針,剛開始都指向鏈表的第一個節點,第一個指針先走k-1步,然后兩個一塊走,直到第一個指針的下一位為nullptr,則第二個指針所指的位置就是倒數第k個節點。 在編程書上看見這個方法,自己畫了個鏈表試了試果然是這樣,但是這是個什么原理 ...
最近在學回顧之前學到的知識,正好碰到了關於鏈表查找的一道面試題,在此貼出來,與小伙伴們共同交流~ 在剛看到題目,其實很容易就想到一個方法,就是先求鏈表的長度(length),然后去超找第length-k+1個節點的值,再進行查找,先貼代碼如下。 這個算法需要對鏈表進行兩次 ...