-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
這個想法是有兩個指針以不同的速度遍歷列表,其速度是另一個速度的兩倍。快速指針在每次迭代時都會被提前,而慢速指針則只會在每次迭代中進行。當快速指針到達列表的末尾時,慢速指針恰好在中間。 –
我不明白指針電流和中間的功能,以及無功電流。我不明白在while循環中的過程 –