链表的建立,尾节点指向新的节点 用tail->newnode,为什么不能用tail=tail->next; 部分程序在下面:if(head ==NULL)\x05\x05\x05head = newnode;\x05\x05else\x05\x05\x05tail->next = newnode;\x05\x05tail=tail->next;//错误\x05\x05//t

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 03:34:57
链表的建立,尾节点指向新的节点 用tail->newnode,为什么不能用tail=tail->next; 部分程序在下面:if(head ==NULL)\x05\x05\x05head = newnode;\x05\x05else\x05\x05\x05tail->next = newnode;\x05\x05tail=tail->next;//错误\x05\x05//t

链表的建立,尾节点指向新的节点 用tail->newnode,为什么不能用tail=tail->next; 部分程序在下面:if(head ==NULL)\x05\x05\x05head = newnode;\x05\x05else\x05\x05\x05tail->next = newnode;\x05\x05tail=tail->next;//错误\x05\x05//t
链表的建立,尾节点指向新的节点 用tail->newnode,为什么不能用tail=tail->next; 部分程序在下面:
if(head ==NULL)
\x05\x05\x05head = newnode;
\x05\x05else
\x05\x05\x05tail->next = newnode;
\x05\x05tail=tail->next;//错误
\x05\x05//tail = newnode;

链表的建立,尾节点指向新的节点 用tail->newnode,为什么不能用tail=tail->next; 部分程序在下面:if(head ==NULL)\x05\x05\x05head = newnode;\x05\x05else\x05\x05\x05tail->next = newnode;\x05\x05tail=tail->next;//错误\x05\x05//t
...这都给你想到了,思维真新颖啊.
newnode是从内存堆区划分一个新的空间,存储一个新的结点,这段程序的作用是把newnode链接到链表的尾端
一开始tail->next是没东西的,是一个null,现在你把newnode的内存地址放在tail->next里,这样链表就连上了.
你的tail=tail->next 是错的,tail->next一开始是null,是一个指针类型,而tail是指向尾结点的指针,这么赋值只会把tail赋值成null,从而丢失了尾指针
而下一句tail = newnode;是必须加上的,因为现在链表的结尾变成newnode了,这样tail作为尾指针需要更新,所以要把它指向新的链表结尾上去