在循环条件中遍历单个列表时,temp!= NULL和temp-next!= NULL之间的区别是什么?对于Ex
while(temp != NULL)
{
......
......
}
和
while(temp->next != NULL)
{
......
......
}
我不明白两者之间的区别。
答案 0 :(得分:0)
从上下文来看,这个答案假定temp是链表中的一个节点。
当temp之后有一个节点时(例如,当temp不是列表中的最后一个节点时), temp->next != NULL
返回true。例如,请考虑以下列表:
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