我正在查看一些示例代码,这些代码回答了以下问题:从值为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)
)该部分是否隐含在语句中而不必明确说明?
首先,!
是布尔否定运算。(!head)
基本上是head == 0
或head == false
。对于第二部分:
Zero是false,NULL(几乎)总是零,所以while(h->next)
基本上等价于while(h->next != NULL)