-3
このコードはC++でリストの中間ノードを表示するのには見つかりましたが、コードを理解できません...誰かが私に説明できますか?単独リンクリストの中間ノード
Type& findMiddleNode()
{
int check = 0;
nodeType *current;
nodeType *mid;
current = first;
mid = first;
while (current != NULL)
{
current = current->link;
check = (check + 1) % 2;
if (check == 0)
mid = mid->link;
}
return mid->info;
}
PD:このコードは完璧に動作しますが、わかりません。誰かが私にこれを理解するのを助けます。ありがとう!
あなたは正確に何を理解していませんか?私たちはあなたがそう言うなら、より良い助けを与えることができます:) – Rakete1111
アイデアは、異なる速度でリストを横断する2つのポインタを持つことです。高速ポインタはすべての反復で進められ、遅いポインタは反復ごとにのみ進められる。高速ポインタがリストの終わりに達すると、遅いポインタは真ん中になります。 –
私は、現在のポインタと現在のポインタ、および現在のポインタの機能を理解していません。私はwhileループのプロセスを理解していません。 –