ブラッシングノート(9)-出力リストの最後から2番目のkノード

ブラッシングノート(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;
    }
};

 

36件の元の記事を公開 19件の賞賛 20,000回以上の閲覧

おすすめ

転載: blog.csdn.net/GJ_007/article/details/105413859