このプログラムでは、なぜ変更ヘッドラインに* head = * head-> nextを使用できないのですか?C++のポインタへのポインタ
これは...
geeksforgeekアルゴリズムであり、またはポインタあなたが*head_ref = *head_ref->next
を使用することができます
void deleteNode(struct node **head_ref, int key)
{
// Store head node
struct node* temp = *head_ref, *prev;
// If head node itself holds the key to be deleted
if (temp != NULL && temp->data == key)
{
*head_ref = temp->next; // Changed head
free(temp); // free old head
return;
}
// Search for the key to be deleted, keep track of the
// previous node as we need to change 'prev->next'
while (temp != NULL && temp->data != key)
{
prev = temp;
temp = temp->next;
}
// If key was not present in linked list
if (temp == NULL) return;
// Unlink the node from linked list
prev->next = temp->next;
free(temp); // Free memory
}
私は '* head = * head-> next'がうまくいくと思いますが、試しましたか?しかし、tempは他の目的にも役立ちます。 – keyser