关于链表的一些问题
void print(struct node *first){struct node *newnode;
newnode = first;
while(newnode!=NULL)
{
printf("%d",newnode->data);
newnode=newnode->next;
}
}
我想问一下,在该函数中为什么要在其中又定义一个newnode节点呢,直接用first头节点遍历不行吗?不是特别理解
void print(struct node *first){
while(first!=NULL)
{
printf("%d",first->data);
first=first->next;
}
}
不明白这样做的意义在哪? 完全可以,newnode的定义纯属多余,大概是怕在函数中修改了 first 指针吧。其实,在函数内,能修改的是 first 所指向内存中的内容,并不能修改 first 变量本身。当然我这里所说的修改,其实是特指对函数外部的影响。 链表的操作一般不直接操作头指针,因为链表的操作都是从头指针开始的,万一操作不当移动了头指针,后续就找不到链表的入口了。所以一般都是用个辅助指针来操作,并不是多余的。 chxchxkkk 发表于 2020-12-19 14:43
链表的操作一般不直接操作头指针,因为链表的操作都是从头指针开始的,万一操作不当移动了头指针,后续就找 ...
明白了,谢谢
页:
[1]