链表p != NULL 和 p->next !=NULL区别

while(p!=NULL)
{
    printf("%d",p->data);
    p=p->next;
}

这里写图片描述

第一步:p指向第一个节点,第一个节点数据不为空;打印数据:1;p=p->next,指向第二个节点;
第二步:p指向第二个节点,第二个节点数据不为空;打印数据:2;p=p->next,指向第三个节点;
第三步:p指向第三个节点,第三个节点数据不为空;打印数据:3;p=p->next,指向第四个节点;
第四步:p指向第四个节点,第四个节点数据不为空;打印数据:4;p=p->next,指向第五个节点;
第五步:p指向第五个节点,第五个节点数据不为空;打印数据:5;p=p->next,指向第六个节点(不存在);
第六步:p指向第六个节点(不存在),p为空;退出循环。


while(p->next!=NULL)
{
    printf("%d",p->data);
    p=p->next;
}

这里写图片描述

第一步:p->next指向第二个节点,第二个节点数据不为空;打印数据:1;p=p->next,指向第二个节点;
第二步:p->next指向第三个节点,第三个节点数据不为空;打印数据:2;p=p->next,指向第三个节点;
第二步:p->next指向第四个节点,第四个节点数据不为空;打印数据:3;p=p->next,指向第四个节点;
第三步:p->next指向第五个节点,第五个节点数据不为空;打印数据:4;p=p->next,指向第五个节点;
第四步:p->next指向第六个节点(不存在),第六个节点为空;退出循环

猜你喜欢

转载自blog.csdn.net/qq_35025383/article/details/80074416