b*******y 发帖数: 1240 | 1 在delete head的时候,书上有两种写法
一是P27
bool deleteElement( IntElement **head, IntElement *deleteMe )
{
IntElement *elem = *head;
if( deleteMe == *head ){ /* special case for head */
*head = elem->next;
delete deleteMe;
return true;
}
}
第二种是 P37
bool remove( Element *elem ){
if (elem == head) {
head = elem->next;
delete elem;
return true;
}
...
那种方法是对的 |
r*******y 发帖数: 1081 | 2 第二种在 head是global的时候也对
【在 b*******y 的大作中提到】 : 在delete head的时候,书上有两种写法 : 一是P27 : bool deleteElement( IntElement **head, IntElement *deleteMe ) : { : IntElement *elem = *head; : if( deleteMe == *head ){ /* special case for head */ : *head = elem->next; : delete deleteMe; : return true; : }
|
r*********2 发帖数: 88 | 3 第二种是链表类里remove方法的实现,
第一种只是是单纯删除一个节点的函数
【在 b*******y 的大作中提到】 : 在delete head的时候,书上有两种写法 : 一是P27 : bool deleteElement( IntElement **head, IntElement *deleteMe ) : { : IntElement *elem = *head; : if( deleteMe == *head ){ /* special case for head */ : *head = elem->next; : delete deleteMe; : return true; : }
|