輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。
首先把頭結點賦值給p,如果頭結點不為零,則從0開始計算鍊錶的長度,不斷讓其指向下乙個結點。進而得到鍊錶的表長。
可能鍊錶長度會小於k,所以要判斷一下
然後用表長得到倒數第k個數,再遍歷一次鍊錶即可
/*
struct listnode
};*/
class solution
p = plisthead;
cnt -
= k;
if(cnt >=0)
return p;
}return
null;}
};
使用兩個指標,都指向頭結點。
乙個指標先遍歷到第k個結點,在這之前如果都不為空,那麼說明鍊錶的長度大於k
等到第乙個指標遍歷完k個結點後,第二個指標開始走,兩個指標一起走,這樣兩個指標就始終保持著同樣距離,等到第乙個指標為null的時候,第二個指標指向的結點就是倒數第k個結點了。
輸出鍊錶中倒數第k個結點
題目 輸入乙個單向鍊錶,輸出該鍊錶中倒數第k個結點。鍊錶的倒數第0個結點為鍊錶的尾指標。鍊錶結點定義如下 struct listnode coder lee 20120309 include include using namespace std struct listnode void creat...
輸出鍊錶中倒數第k個結點
鍊錶中倒數第k個結點 題目描述 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。思路 定義新結點從頭開始遍歷鍊錶,移動 k 次後停止,再定義新的結點指向煉表頭結點,兩個結點同時後移,直至前乙個為 null。注意 鍊錶可能一開始就是空的。如果 k 等於鍊錶長度,如1 2 3,k 3時應該返回原鍊錶1 2 3...
輸出鍊錶中倒數第 k 個節點
題目描述 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點 思路 1.得到鍊錶的長度 2.通過觀察可以發現當 cur 從 head 開始到倒數第 k 個節點所迴圈的次數 len k 3.所以退出迴圈時 cur 指的就是題目所求的節點 public class solution return len publ...