ファーウェイOJ基礎編-出力一方向チェーンテーブルの最後からk番目のノード


一方向チェーンテーブルを入力し、チェーンテーブルの最後からk番目のノードを出力します.チェーンテーブルの最後から0番目のノードはチェーンテーブルの最後のポインタです.
struct ListNode{
	int mKey;
	ListNode* mNext;
};
void HWoj(){
	ListNode *head, *p, *q, *t;
	head = NULL;
	int N,tmp=0;
	cin >> N;
	for (int i = 0; i < N; ++i){
		cin >> tmp;
		p = new ListNode;
		p->mKey = tmp;
		p->mNext = NULL;
		if (head == NULL)
			head = p;
		else
		{
			q->mNext = p;
		}
		q = p;
	}
	t = head;
	int ptr = 0,count=0;
	cin >> ptr;
	while (t != NULL){
		if (count == N - ptr-1){ cout << t->mKey; break; }
		else{ ++count; t = t->mNext; }
		if (ptr > N||ptr<0){break; }
	}
	cout << endl;
}