cpp#includeusingnamespacestd;structnode{chardata;node*next;};;node*Create();;voidshow(node*head);intmain(){node*head;head=Create();show(head);return0;}node*Create(){chartemp;node*head=NULL;node*next=NULL;node*r=head;node*PS;coutnext=NULL;if(head==NULL){head=PS;}else{r->next=PS;}r=PS;}returnhead;}voidshow(node*head){node*read=head;while(read!=NULL){coutnext;}cout
2 回答
白板的微信
TA贡献1883条经验 获得超3个赞
放到外面说明当head==NULL成立的时候也需要执行r=PS。那么为什么每次增加节点都需要执行r=PS呢?你顺着逻辑想想吧。。好吧,其实是这样的,按你的想法放到里面,增加第一个节点的时候head==NULL成立,r=PS并不会执行,那么第二次增加节点的时候r还是等于NULL但head==NULL不成立,于是执行r->next=PS时程序挂掉。。r这个指针其实指向的是当前链表最后一个节点。PS..申明node结构的时候应该是node*next吧。。。
皈依舞
TA贡献1851条经验 获得超3个赞
node*head=NULL;node*next=NULL;node*r=head;此时r=NULL,然后r->next=PS;r=PS;相当于NULL->next=PS...然后大家就呵呵了
添加回答
举报
0/150
提交
取消