2017.4.23 代码小记
这是一道简单的链表题目,这个函数是用于在链表前插入元素
这是正确的代码
void push_front (node** head , int val) {
node* temp = *head ;
if (temp == NULL) {
temp = (node*) malloc (sizeof (node)) ;
temp -> val = val ;
temp -> next = NULL ;
*head = temp ;
return ;
}
else {
node* mid = (node*) malloc (sizeof(node)) ;
mid -> val = val ;
mid -> next = temp ;
*head = mid ;
return ;
}
}
这是错误的代码
void push_front (node** head , int val) {
node* temp = *head ;
if (*head == NULL) {
temp = (node*) malloc (sizeof (node)) ;
temp -> val = val ;
temp -> next = NULL ;
head = &temp ;
return ;
}
else {
node* mid = (node*) malloc (sizeof(node)) ;
mid -> val = val ;
mid -> next = temp ;
head = &mid ;
return ;
}
}
两者的区别“head = &temp”和“*head = temp”.