(単一チェーンテーブルの本題について)テーブルヘッダノード付き単一チェーンテーブルが知られています...チェーンテーブルの最後からk番目の位置のノードを検索するために、できるだけ効率的なアルゴリズムを設計してください.


本題は既知のヘッダーノードを有する単一チェーンテーブルを記述し、ノード構造は
data
next
チェーンテーブルはヘッダポインタheadのみを与えたと仮定する.チェーンテーブルを変更しない前提で、できるだけ効率的なアルゴリズムを設計して、チェーンテーブルの最後からk番目の位置のノードを検索してください.検索に成功すると、そのノードのdata値を出力し、1を返します.そうでなければ、0を返します.
标题:2人の子供が石ハサミ布のゲームをしていて、誰が勝ったのか、誰が一歩前進したのかと見ることができます.
出発地も1歩だと仮定すると、1番の子供はもうk歩歩いたが、2番の子供は勝ったことがない.ゲームがそんなに退屈ではないように、次は石ハサミ布で誰が勝っても、2人の子供は1番の子供がゴールまで歩いて、ゲームは終わります.
以上はすべて仮想的な状況で発生し,ただテーマの具象化のためである.
コード:
int playGame(ListNode* head, int k)
{
	ListNode* p, *q;
	p = head;	//p  q       k   
	q = head->next;	//q         
	int i = 1;	//i              
	while (q != NULL)
	{
		q = q->next;
		++i;		//  q       ,i 1
		if (i > k)	// i  k ,p             
			p = p->next;
	}
	if (p == head)	//p    ,       k   
		return 0else		//  p      ,       k       。  data 
	{
		cout << p->data << endl;
		return 1;
	}
}