链表removeHead中的缺陷
发现并修复下列 C 函数中的缺陷,该函数是想从一个单向链表中删除头元素。
void removeHead(Node *head){
delete head;
head = head->next;
}
delete head;
head = head->next;
}
分析步骤:
1、检查数据、参数是否正确的进入函数
2、检查函数每一行是否能正确工作
3、检查函数输出的数据是否正确,返回值,是否更新了应该更新的调用代码处的变量
4、检查常见的错误情况,如空指针作为实参
void removeHead(Node **head){ //形参步骤3更改
Node *temp; //步骤2更改
if(*head != NULL){ //步骤4更改
temp = (*head)->next;
delete *head;
*head = temp;
}
}
Node *temp; //步骤2更改
if(*head != NULL){ //步骤4更改
temp = (*head)->next;
delete *head;
*head = temp;
}
}