C++语法问题(链表)



我正在查看一些示例代码,这些代码回答了以下问题:从值为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 == 0head == false。对于第二部分:

Zero是false,NULL(几乎)总是零,所以while(h->next)基本上等价于while(h->next != NULL)

相关内容

  • 没有找到相关文章

最新更新