私はこの質問を見ました:
次のコードを使用して要素 oa リストを追加します。C リンク リスト 最後にノードを挿入
int addNodeBottom(int val, node *head){
//create new node
node *newNode = (node*)malloc(sizeof(node));
if(newNode == NULL){
fprintf(stderr, "Unable to allocate memory for new node\n");
exit(-1);
}
newNode->value = val;
newNode->next = NULL; // Change 1
//check for first insertion
if(head->next == NULL){
head->next = newNode;
printf("added at beginning\n");
}
else
{
//else loop through the list and find the last
//node, insert next to it
node *current = head;
while (true) { // Change 2
if(current->next == NULL)
{
current->next = newNode;
printf("added later\n");
break; // Change 3
}
current = current->next;
};
}
return 0;
}
ヘッドを内部で変更し、その変更を関数の外部に反映させたい場合に*head
、ヘッドがノードとして渡されるのはなぜですか? node **head
ここで何が欠けていますか?