我无法找到本书第二版的勘误表。我的问题涉及下面一段代码中的if语句。编程面试中的错误暴露?
void removeHead (Node ** head) {
Node * temp;
if (!(*head)) {
temp = (*head)->next;
delete *head;
*head = temp;
}
}
所以我明白,if语句的重点是检查节点是否为空。但是,通过添加额外的“!”评估,这不会否定null的虚假值吗?难道是正确的改变它的东西,如:
if (*head) { ... }
而且如果有人知道在哪里可以找到的第二版,将是巨大的官方勘误表。
感谢,
山姆
问题是...为什么会有人在C++中编写这样的代码?节点应该是一个类,链接列表应该是另一个类的头部作为私有变量,并删除..某些东西应该是一个公共职能。 – Lundin 2011-03-01 10:49:21
官方勘误表http://www.wiley.com/legacy/compbooks/programminginterview/errata。html – kas 2017-04-11 00:23:53