ブラッシングノート(9)-出力リストの最後から2番目のkノード
タイトルの説明
リンクリストを入力し、リンクリストの最後から2番目のノードを出力します。
アイデア:再帰的なネストを使用します。再帰を使用して最後のノードまで再帰し、それを使用して層ごとに終了するときに変数をカウントし、kに到達したときに出力する
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
int count =0;
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
ListNode* p=pListHead;
if(p==NULL)
return p;
ListNode* q=FindKthToTail(p->next, k);
count++;
if(count==k)
return p;
return q;
}
};