void addNewNode (struct node *head, int n)
{
struct node* temp = (struct node*) malloc(sizeof(struct node));
temp -> data = n;
temp -> link = head;
head = temp;
}
上面给出的代码是在链表头部添加新节点的函数的普遍错误版本。通常正确的版本是这样的,
void addNewNode (struct node **head, int n);
void addNewNode (struct node * &head, int n);
为此,我制定了另一个但简单的功能,效果很好。
struct node* addNewNode (struct node *head, int n)
{
struct node* temp = (struct node*) malloc(sizeof(struct node));
temp -> data = n;
temp -> link = head;
return temp;
}
但是我还没有看到在代码和教程中使用或讨论过这种方法,因此我很想知道这种方法是否存在缺陷。