トピック出典:安全性を証明するために、ネットのオファーオフ牛
タイトル:リンクリスト、リンクリスト出力の逆数k番目のノードを入力します。
問題解決のアイデア:二つのポインタの使用、k番目の前方ノードへの最初のポインタ(フォント)データポイント、データへのヘッドノードの第2のポインタ(尾部)、テイルにフォントポインタ、末尾ポインタでありますデータ点を最後から二番目のノードKです。
次のようにコードは次のとおりです。
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
ListNode * font = pListHead;
while ((k > 0)&&(font!=NULL)) {
font = font->next;
--k;
}
if ((font == NULL) && (k != 0))return NULL;
ListNode* tail = pListHead;
while (font != NULL)
{
font = font->next;
tail = tail->next;
}
return tail;
}
};
スクリーンショットにより、