質問: current->next; } cout << "The last item is: " << current->data <
回答: 両者の違いですが、それぞれが属している`display_every_item`と`display_just_last`と言う関数が目的とする結果の違いのために、必要とする処理が違うので、違った記述が使われているというのが回答です。 関数の名前自身が説明の一助になっていますので、そうした情報も含めて判断してください。 * `current != NULL`は`display_every_item`(全ての項目(=ノード)を都度表示する)ために、現在の項目へのポインタが有効な値かどうかを判定しています。有効な項目であれば内容のデータを表示して次の項目へ移動します。 * `current->next != NULL`は`display_just_last`(最後の項目(=ノード)だけを表示する)ために、次の項目へのポインタが有効な値かどうかを判定しています。次の項目へのポインタがNULLだったら最後の項目を見つけたのでループを終了するということです。 ただし前者の`display_every_item`については冗長で判定の場所や考え方も変わりますが、`current != NULL`ではなく`current->next != NULL`を使うことも出来ます。 こんな記事を参考に。 * 質問と同じ`current != NULL`: 単一リンクリスト(Singly Linked List)の説明とサンプルコード(C ++) こちらはC言語 データ内容の表示 - 線形リスト * 質問の2つ目と同じ`current->next != NULL`:(C++ではなくCですが) 【C言語】よくわかる構造体とリスト構造。(前編)