題目描述: 輸入一個鏈表,輸出該鏈表中倒數第k個結點。為了符合習慣,從1開始計數,即鏈表的尾結點是倒數第1個節點。例如,一個鏈表有6個結點,從頭結點開始,它們的值依次是1,2,3,4,5,6。則這個鏈表倒數第三個結點是值為4的結點。 解題思路: 對於單鏈表來說,沒有從后向 ...
PS:這是一道出境率極高的題目,記得去年參加校園招聘時我看到了 次,但是每次寫的都不完善。 一 題目:鏈表的倒數第k個節點 題目:輸入一個鏈表,輸出該鏈表中倒數第k個結點。為了符合大多數人的習慣,本題從 開始計數,即鏈表的尾結點是倒數第 個結點。例如一個鏈表有 個結點,從頭結點開始它們的值依次是 。這個鏈表的倒數第 個結點是值為 的結點。 鏈表的節點定義如下,這里使用的是C 來定義: 二 解題思路 ...
2015-08-29 15:04 2 11553 推薦指數:
題目描述: 輸入一個鏈表,輸出該鏈表中倒數第k個結點。為了符合習慣,從1開始計數,即鏈表的尾結點是倒數第1個節點。例如,一個鏈表有6個結點,從頭結點開始,它們的值依次是1,2,3,4,5,6。則這個鏈表倒數第三個結點是值為4的結點。 解題思路: 對於單鏈表來說,沒有從后向 ...
題目描述: 輸入一個鏈表,輸出該鏈表中倒數第k個結點。例如有一個鏈表有六個節點1,2,3,4,5,6.則它的倒數第二個節點為5 節點定義如下: 思路一: 設置一個快指針,一個慢指針。像一把尺子,當尺子的一端移動到鏈表的末尾,則另一端則為倒數第k個節點。 思路 ...
題目描述: 輸入一個鏈表,輸出該鏈表中倒數第k個結點。(hint: 請務必使用鏈表。) 輸入: 輸入可能包含多個測試樣例,輸入以EOF結束。對於每個測試案例,輸入的第一行為兩個整數n和k(0<=n<=1000, 0< ...
看到這道題目,最直觀的想法,就是先算出鏈表的長度n,然后倒數第k個結點就是順序的第(n-k+1)個數,不過這樣需要2次遍歷鏈表,如果要求只能遍歷鏈表一次,那么上述算法就不符合要求了。 那我們就使用第二種算法,設定兩個指針p1和p2,兩個指針剛開始都指向鏈表的第一個結點,然后讓p1 ...
正文 本文參考自《劍指offer》一書,代碼采用Java語言。 更多:《劍指Offer》Java實現合集 題目 輸入一個鏈表,輸出該鏈表中倒數第k個結點。為了符合大多數人的習慣,本題從1開始計數,即鏈表的尾結點是倒數第1個結點。例如一個鏈表有6個結點,從頭結點開始它們的值依次是 ...
一、題目:兩個鏈表的第一個公共節點 題目:輸入兩個鏈表,找出它們的第一個公共結點。 鏈表結點定義如下,這里使用C#語言描述: 二、解題思路 2.1 蠻力法 碰到這道題,很多人的第一反應就是蠻力法:在第一鏈表上順序遍歷每個結點,每遍歷到一個結點 ...
一、題目:反轉鏈表 題目:定義一個函數,輸入一個鏈表的頭結點,反轉該鏈表並輸出反轉后鏈表的頭結點。 鏈表結點定義如下,這里使用的是C#描述: 二、解題思路 2.1 借助外部空間的解法一 由於題目並沒有要求必須原地反轉,因此可以借助外部空間實現 ...
題目: 請實現函數ComplexListNode* Clone(ComplexListNode* pHead),復制一個復雜鏈表。 在復雜鏈表中,每個結點除了有一個pNext指針指向下一個結點之外,還有一個pSibling指向鏈表中的任意結點或者NULL。 結點的定義 ...