輸入一個鏈表,輸出該鏈表中倒數(shù)第k個結點。
基本思路是使用兩個輔助指針p, q,讓p先走k - 1步后,p, q兩個指針再一起走
這樣當p指針走到鏈表的末尾時,q指針剛好走到的就是倒數(shù)第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