אתה שומר מצביע על האיבר הראשון, ומתחיל "לטייל" עם מצביע אחר, עד שאתה מגלה ששני המצביעים שווים, או שהמצביע שווה NULL. for(p=head,q=p->next; q!=NUUL && q!=p; q=q->next); if (q=NULL) return true; return false;
אני חושב שהתשובה הייתה לרוץ עם שני מצביעים בקצבים שונים עד למפגש בניהם או הגעה לKNUU. קצבים שונים מתכוון לזה שבכל פעם שהמצביע האיטי עובר לאיבר הבא, המצביע המהיר עובל שני איברים.