4

定义一个内存单元

struct node {
    int item;
    node *next;
};

并假设ptr指向一个链表,放置while(ptr!=NULL) while(ptr->next!=NULL)循环遍历列表直到到达空指针之间有区别吗?

4

2 回答 2

14

while(ptr->next!=NULL)不会循环通过你的最后一个节点。

当你到达你的最后一个节点时,ptr->next它将为空,并且它将退出while循环

于 2013-09-16T19:35:50.777 回答
6

while(ptr != NULL)while(ptr->next != NULL)将在跳过最后一个元素时迭代所有链表。

例如,当您想要访问最后一个节点以在列表末尾添加新元素时,第二种解决方案很有用。

于 2013-09-16T19:37:03.487 回答