題目描述: 輸入一個鏈表,輸出該鏈表中倒數第k個結點。例如有一個鏈表有六個節點1,2,3,4,5,6.則它的倒數第二個節點為5 節點定義如下: 思路一: 設置一個快指針,一個慢指針。像一把尺子,當尺子的一端移動到鏈表的末尾,則另一端則為倒數第k個節點。 思路 ...
題目描述: 輸入一個鏈表,輸出該鏈表中倒數第k個結點。例如有一個鏈表有六個節點1,2,3,4,5,6.則它的倒數第二個節點為5 節點定義如下: 思路一: 設置一個快指針,一個慢指針。像一把尺子,當尺子的一端移動到鏈表的末尾,則另一端則為倒數第k個節點。 思路 ...
題目:輸入一個鏈表,輸出該鏈表中倒數第k個結點 代碼如下 運行截圖 ...
第 13 題(鏈表):題目:輸入一個單向鏈表,輸出該鏈表中倒數第 k 個結點。鏈表的倒數第 0 個結點為鏈表的尾指針。鏈表結點定義如下: struct ListNode {int m_nKey;ListNode* m_pNext;}; 我的思路:先翻轉鏈表,再從翻轉后的鏈表的頭向尾數k ...
兩種方法 1.在鏈表的初始化數據中加入 num 數據, 每添加一個節點,num加1,每刪除一個節點,num減1 查找倒數第k個元素,即 指向第一個節點的指針向后移動 num - k 步。 2.使用兩個指針 i 和 j, i和j初始化都指向第一個節點。 查看倒數第k個元素,先將 j ...
題目描述: 輸入一個鏈表,輸出該鏈表中倒數第k個結點。為了符合習慣,從1開始計數,即鏈表的尾結點是倒數第1個節點。例如,一個鏈表有6個結點,從頭結點開始,它們的值依次是1,2,3,4,5,6。則這個鏈表倒數第三個結點是值為4的結點。 解題思路: 對於單鏈表來說,沒有從后向 ...
看到這道題目,最直觀的想法,就是先算出鏈表的長度n,然后倒數第k個結點就是順序的第(n-k+1)個數,不過這樣需要2次遍歷鏈表,如果要求只能遍歷鏈表一次,那么上述算法就不符合要求了。 那我們就使用第二種算法,設定兩個指針p1和p2,兩個指針剛開始都指向鏈表的第一個結點,然后讓p1 ...
1、為了找出倒數第k個元素,最容易想到的辦法是首先遍歷一遍單鏈表,求出整個單鏈表的長度n,然后將倒數第k個,轉換為正數第n-k個,接下來遍歷一次就可以得到結果。但是該方法存在一個問題,即需要對鏈表進行兩次遍歷,第一次遍歷用於求解單鏈表的長度,第二次遍歷用於查找正數第n-k個元素。 2、顯然 ...
求鏈表的倒數第K個節點:主要思路設置兩個指針,剛開始都指向鏈表的第一個節點,第一個指針先走k-1步,然后兩個一塊走,直到第一個指針的下一位為nullptr,則第二個指針所指的位置就是倒數第k個節點。 在編程書上看見這個方法,自己畫了個鏈表試了試果然是這樣,但是這是個什么原理 ...