0

これは、基本的な連結リストの最後に新しいノードを挿入するために設計された関数です。

node *insert(node *head, int data)
{
   if (head == NULL)
      return createNode(data);

   head->next = insert(head->next, data);

   return head;
}

戻り値がなく、代わりにポインターをヘッドポインターに渡すように変更するにはどうすればよいですか? 上記のように再帰的に書くことは可能ですか?

関数のシグネチャは次のとおりです。

void insert(node **head, int data)
4

2 に答える 2

1

このような:

void insert(node **head, int data)
{
   if (*head == NULL)
      *head = createNode(data);

   insert(&(*head)->next, data);
}
于 2013-06-27T21:26:39.983 に答える