遍历单个列表时,在循环条件中,temp != NULL和temp-next != NULL有什么区别?
为例 while(temp != NULL)
{
......
......
}
和
while(temp->next != NULL)
{
......
......
}
我不明白这两者的区别
根据上下文,这个答案假设temp是链表中的一个节点。
temp->next != NULL
返回true当有一个节点在temp之后(即当temp不是列表中的最后一个节点)。例如,考虑以下列表:
a -> b -> c -> NULL
如果我们执行temp = a->next
,则temp为b,并且temp->next != NULL
的计算结果为true,因为c(不是NULL)在b之后。
temp != NULL
返回true。如果由于某种原因,您在列表中遍历得太远,则可能不是这种情况。使用与上面相同的列表:如果执行temp = c->next
,则temp != NULL
的计算结果为false。
理解了这些,列表之间的区别如下:
-
while(temp != NULL)...
执行直到temp为NULL -
while(temp->next != NULL)
执行直到节点temp为NULL