假设相关的头文件,声明了C中的单链接列表函数。
Delete()的以下定义正确吗?
/* The Structure for SLL
typedef struct SLL
{
int data;
struct SLL *next;
}node;
Function Delete() deletes a node*/
void Delete( node **head)
{
node *temp, *prev;
int key;
temp = *head;
if(temp == NULL)
{
printf("\nThe list is empty");
return;
}
clrscr();
printf("\nEnter the element you want to delete:");
scanf("%d", &key);
temp = search( *head , key);//search()returns the node which has key
if(temp != NULL)
{
prev = get_prev(*head, key);
if(prev != NULL)
{
prev->next = temp->next;
free(temp);
}
else
{
*head = temp->next;
free(temp);
}
printf("\nThe node is deleted");
getch();
}
}
1)如果我将(node ** head)替换为(node *head),会发生什么?
2)如果我将void Delete (node **head)替换为node会发生什么?
*Delete(node *head)?
3)是否有另一种方法可以删除C中的节点?
预先感谢