2

以下は、 AdamDrozdekによるC++(2nd Edition)のデータ構造とアルゴリズムからの単一リンクリスト実装へのコードからの抜粋です。これには、特定の値を持つノードの削除が含まれます。

IntNode *tmp = head->next;
head = head->next;
delete tmp;

headは他の場所でIntNode *として定義されています)このコードフラグメントにタイプミスがありますか、それとも上記のコードフラグメントを実行するたびにheadが常にnullポインターになるという点で私のメンタルプロセッサが正しくありませんか?

4

2 に答える 2

0

いいえ、リストの2番目の要素(現在は最初の要素)を指します。

于 2012-07-07T18:37:45.327 に答える
0

と書くdelete tmpと、が指すオブジェクトが削除されtmpます。ただし、削除後headも同じ場所を指します。オブジェクトが指しているオブジェクトが削除されているため、 (*head)を逆参照すると問題が発生します。head

于 2012-07-07T18:50:49.873 に答える