【数据结构】困扰了很多年的问题 -- 链表尾插法为什么要使用 while (p->next != NULL), 而不是 while (p != NULL)

困扰了很多年的问题 –
链表尾插法为什么要使用 while (p->next != NULL), 而不是 while (p != NULL)
tag:对于大佬们不算什么哈!

在链表尾插法中,我们需要找到链表的尾部节点,然后将新节点插入到尾部节点的后面。因此,我们需要遍历整个链表,直到找到尾部节点。

在代码中,我们使用了while循环来遍历链表,条件是p->next != NULL,即p节点的下一个节点不为空。如果我们使用while§来遍历链表,那么当p指向尾部节点时,p->next为NULL,循环就会结束,此时我们无法将新节点插入到尾部节点的后面,因此会导致链表构建错误。

因此,在链表尾插法中,我们需要使用while(p->next != NULL)来遍历链表,以确保能够找到尾部节点并将新节点插入到尾部节点的后面。

补充:如果 while (p != NULL) ,当遍历至链表最后一个元素时,p这个链表节点已然为空,自然不存在链表节点的数据部分以及指针域next部分,自然也就不会再承接尾接新结点的任务了,会导致链表一直构建失败。

自内修!共勉!

你可能感兴趣的:(数据结构,数据结构,链表,算法)