链表removeHead中的缺陷

  发现并修复下列 C 函数中的缺陷,该函数是想从一个单向链表中删除头元素。

void removeHead(Node *head){
    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;
    }
}

 

 

posted on 2010-03-07 15:47  ︶ㄣ第二名  阅读(903)  评论(0编辑  收藏  举报