我正在查看一些回答问题的示例代码:从值为 val的整数链接列表中删除所有元素。
代码的第一行是if (!head) return NULL;
。 (!head)
是什么意思?我假设它意味着(head == NULL)
,但是这个标准适用于任何我想说(head == NULL)
之类的东西吗?
while (h->next){
if (h->next->val == val){
h->next = h->next->next;
对于这部分代码,为什么不包含!= NULL
部分是可以的? (例如(h->next != NULL)
)声明中是否隐含了该部分而无需明确说明?
答案 0 :(得分:3)
首先,!
是布尔否定操作。它(!head)
基本上是head == 0
或head == false
。
对于seond部分:
Zero为false,NULL(几乎)始终为零,因此while(h->next)
基本等效while(h->next != NULL)