3

リンクされたリストを実装しようとしているので、次のようなヘッダー ファイルを持つ Node クラスがあります。

@interface Node : NSObject

@property(nonatomic,assign)int data;
@property(nonatomic,strong) Node *right;
@property(nonatomic,strong) Node *left;

@end

次に、別のクラスでそれらを割り当ててから、メソッドを呼び出して、特定の値の出現をすべて破棄します。

Node *node0 = [[Node alloc]init];
Node *node1 = [[Node alloc]init];
Node *node2 = [[Node alloc]init];
Node *node3 = [[Node alloc]init];
Node *node4 = [[Node alloc]init];
node0.data = 1;
node1.data = 2;
node2.data = 5;
node3.data = 5;
node4.data = 3;
node0.right = node1;
node1.right = node2;
node2.right = node3;
node3.right = node4;
node4.right = NULL;
[self removeNodeWithValue:node0 value:5];
NSLog(@"node %d, %d, %d, %d, %d", node0.data, node1.data, node2.data, node3.data, node4.data);

メソッド自体は次のとおりです。

-(void)removeNodeWithValue:(Node *)head value:(int)value
 {
  Node *toDelete;
  while (head != NULL) {
    if (head.data == value)
    {
        toDelete = head;
        head = head.right;
        toDelete = nil;
    }
    else
    {
       head = head.right;
    }
  }
 }
 ==> 1, 2, 5, 5, 3

toDelete = nilに変更するtoDelete.data = 4と出力が になるため、インスタンスを変更できることはわかっています==> 1, 2, 4, 4, 3。私の質問は、これらのインスタンスをどのように破棄するのですか? ありがとう。

4

3 に答える 3