[EDIT]自分のコードが修正されました。 while(temp - > next!= NULL)while(temp!= NULL)ではありません。間違ったコードを挿入して申し訳ありません。インタビューのテストでLinkedListを使用しました
今日、私はオンラインプログラミングテストに参加しました。インタビュアーはコードと他の面接者を評価するためにCodilityを使用しました。 しばらくして、リンクリストに関する質問がありました。リンクされたリストのアイテム数を数えようとしています。
私はこの質問に対する答えとして、このコードを送信するとき、私は覚えて//This is struct declaration
struct SomeStruct
{
int value;
SomeStruct* next;
}
int elementCount(SomeStruct* list)
{
int count = 0;
if(list != NULL)
{
SomeStruct* temp = list;
while(temp != NULL)
{
count++;
temp = temp->next;
}
}
return count;
}
、Codilityは、その実行にあまりにも多くの時間を消費するので、この解決策が間違っていることを私に指摘: は、私は私の知る限り、これを行うためにのみ可能なアプローチをしましたタスク。 私の頭の中で、this threadには、リンクされたリストのサイズを単純な方法ではなく通過させる他の方法はありません。
この解決策が間違っていると言われると、Codilityに問題はありますか?または別のアプローチがありますか?
PS:テストは十分にあなたが二回反復ごとに間接temp->next
を評価する必要はありませんSTL
あなたは答えが時間のために間違っているわけではありません。その間違っているからです。 while(temp)は必要な式です。大文字小文字の区別:リスト内の1つの要素で(0)を返します。 – WhozCraig