在学习链表编码时,我遇到了这两个东西,无法理解它们之间的区别,让我感到困惑。我一直在学习的这本书在我们在链表末尾添加一个新节点的部分解释了“temp=*q”。
因此,如果列表不为空,即条件
if(*q==NULL)
失败,则将执行下一部分。现在temp
通过语句指向列表中的第一个节点
temp=*q;
现在使用temp我们已经使用 statememnts 遍历了整个链表:
while (temp->link!=NULL) temp=temp->link;
稍后在列表开头添加新节点的编码中,我看到:
现在我们需要使
link
节点的一部分指向现有的第一个节点。这是通过声明实现的
temp->link=*q;
现在的问题是我无法区分这两个代码。他们不是在这两种情况下都扮演着同样的角色吗?相关提一下,temp
是用于列表上所有更新工作的临时节点,*q
是起始节点。