[アルゴリズム]最後から二番目のノードkにチェーン

トピック出典:安全性を証明するために、ネットのオファーオフ牛

タイトル:リンクリスト、リンクリスト出力の逆数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;
    }
};

スクリーンショットにより、
ここに画像を挿入説明

おすすめ

転載: blog.csdn.net/u014128662/article/details/89027845