发现并修复下列 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;
}
}