我最近才进入链接列表,我正在添加自己的“添加到结尾”功能。
void insert_at_end(Node** head, Node* node)
{
Node* temp;
temp = *head;
if (temp == NULL) // linked list is empty
{
*head = node;
}
else
{
while (temp->pNext != NULL)
{
temp = temp->pNext;
}
temp->pNext = node;
}
}
最初,我执行的是temp != NULL
而不是temp->pNext != NULL
,因为我认为这样会将我带到最后一个LAST节点,因为当temp在数据到达NULL之前仍有数据时,它将停止循环。 temp->pNext != NULL
不会在倒数第二个节点处停止吗?因为当它意识到最后一个节点的下一个指针为NULL时它停止循环,所以它不会传播到该节点?
谢谢,如果我需要从呕吐这个词中清除任何内容,请告诉我。
temp-> pNext!= NULL停在倒数第二个节点上吗?
否,
她是便于理解的图片表示。
使用temp != NULL
,temp
将指向NULL
+----+ +----+ +----+
| 1 |---> | 2 |---> | 3 |--->NULL
+----+ +----+ +----+
/ \
|
temp
使用temp->pNext != NULL
,temp
将指向最后一个节点。
+----+ +----+ +----+
| 1 |---> | 2 |---> | 3 |->NULL
+----+ +----+ +----+
/ \
|
temp