遍历单一名单

时间:2016-10-13 15:05:28

标签: linked-list traversal

在循环条件中遍历单个列表时,temp!= NULL和temp-next!= NULL之间的区别是什么?对于Ex

    while(temp != NULL)
    { 
        ......
        ......
    }

    while(temp->next != NULL)
    { 
        ......
        ......
    }

我不明白两者之间的区别。

1 个答案:

答案 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本身是列表中的节点时,

temp != NULL返回true。如果出于某种原因,您在列表中走得太远,则情况可能并非如此。使用与上面相同的列表:如果我们执行temp = c->next,则temp != NULL的计算结果为false。

了解这一点,列表之间的区别如下:

  • while(temp != NULL)...执行,直到temp为NULL
  • while(temp->next != NULL)执行,直到temp之后的节点为NULL