題目描述 輸入一個鏈表,輸出該鏈表中倒數第k個結點。 解法 基本思路是使用兩個輔助指針p, q,讓p先走k 1步後,p, q兩個指針再一起走 這樣當p指針走到鏈表的末尾時,q指針剛好走到的就是倒數第k個結點 如下圖所示 實現代碼 更多演算法題目的完整描述,AC代碼,以及解題思路可以查看GitHub倉庫 ...
題目描述
輸入一個鏈表,輸出該鏈表中倒數第k個結點。
解法
基本思路是使用兩個輔助指針p, q,讓p先走k - 1步後,p, q兩個指針再一起走
這樣當p指針走到鏈表的末尾時,q指針剛好走到的就是倒數第k個結點
如下圖所示
實現代碼
public ListNode FindKthToTail(ListNode head, int k)
{
ListNode p = head, q = null;
while(p != null){
if(q != null)
q = q.next;
else if(--k == 0)
q = head;
p = p.next;
}
return q;
}
更多演算法題目的完整描述,AC代碼,以及解題思路可以查看GitHub倉庫Algorithm