链表的建立,尾节点指向新的节点 用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/10/03 04:57:40
链表的建立,尾节点指向新的节点 用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
xSMsP+,u&7 ;w0X`iLjhX1M3ラ V.\09{_,Af{TFohs2aU;IKdR/3϶S q=kF'۠0㳢F$,ؠmW&6;?'wۑxͻ[{~2l©njlrKU כU5{\g 5D/F5jJ՟|Y)BsbB&bD`RQ_'-|!^QZf}D 7aJDk=◡_k*B%F  + T^]Kk0JF0,ZŖ1EDj\ɛk +\ͼHVvp9G3X45Zc/<( R8`rF\v bA^+Xr1)᥅G:pf*V=|q|`aBO.6AB 8o! |}ԋ@_ktRd?l`pT>'e!&TjPÑ~qL\(vyCK ><ш  ˏmJ Б~L&3 b&

链表的建立,尾节点指向新的节点 用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作为尾指针需要更新,所以要把它指向新的链表结尾上去