我找不到本书第2版的勘误表.我的问题涉及下面一段代码中的if语句.
void removeHead (Node ** head) {
Node * temp;
if (!(*head)) {
temp = (*head)->next;
delete *head;
*head = temp;
}
}
Run Code Online (Sandbox Code Playgroud)
所以我理解if语句的要点是检查Node是否为null.但是通过添加额外的"!" 对评估,这不会否定null的错误值吗?将其更改为以下内容是否正确?
if (*head) { ... }
Run Code Online (Sandbox Code Playgroud)
此外,如果有人知道我在哪里可以找到第二版的官方勘误,这将是伟大的.
谢谢,
山姆
这本书有点瑕疵,因为它首先声称*head作为输入没有问题,然后进一步发展说你应该真正传入**head,然后说你应该检查*head.你真的需要检查*headAND head.
至于if (!(*head)),如果*head是NULL,这if (!0)将是真的.然后我们试着(0)->next去死.绝对是个错误.
| 归档时间: |
|
| 查看次数: |
841 次 |
| 最近记录: |