为什么 while( curr && curr->next) 不等于 while( curr->next && curr )?

问题描述 投票:0回答:1

我试图解决 leetcode 中从排序列表中消除重复的问题,我找到了一个解决方案,但是当我尝试更改 while 循环中的条件位置时,它给了我 nullptr 错误。我不明白为什么会发生这种情况? (https://i.stack.imgur.com/E2Q29.png) (https://i.stack.imgur.com/TAkn0.png)

我尝试了很多次交换条件,但我真的不明白。

c++ algorithm while-loop linked-list singly-linked-list
1个回答
0
投票

&& 运算符属性 (条件 1 && 条件 2) :-

如果条件 1 为假,则不会检查条件 2 bcoz(假 && 条件)将始终为假。

case1(当前 && 当前 -> 下一个):- 如果 curr 为 null,则不会检查 curr -> next

case2(当前 -> 下一个 && 当前):- 现在,如果 curr 为 null,第一个条件是 curr->next,即 null -> next,所以你将陷入异常

© www.soinside.com 2019 - 2024. All rights reserved.