后插结点
后插结点,设p指向单链表中某结点,s指向待插入的值为x的新结点,将s插入到*p的后面.操作如下: s->next=p->next;
p->next=s;
=================================
把s插到p的后面,为什么是s->next=p->next;
??
搜索更多相关的解决方案:
结点
----------------解决方案--------------------------------------------------------
这样做是因为要保存p->next原来的信息
这样做的情况一般出现在两个场合
1、存在尾节点的情况,所谓尾节点指的就是一个特殊的节点,他也是一个节点,但是他所代表的意义不同,他表示链表的结束
2、在链表中间插入节点的情况
其实这两中情况都属于同一情况,那就是插入操作。
比如 如果p->next指向的是x节点,我想在p和x之间插入一个s,怎么做呢?
s->next = p->next //这个时候s->next和p->next同时指想x节点,起到了保存p->next原有信息的作用
p->next = s; //重新定向p->next,把p->next指向s节点,而这个时候s->还是指向x节点的
所以便形成了p -> s -> x的链表
----------------解决方案--------------------------------------------------------
谢了,偶终于懂了!!!
还有点小疑问,为什么要保存p->next的原有信息?
----------------解决方案--------------------------------------------------------
p->next的信息就是x节点的地址
如果不保存它,那么x节点就会丢失在内存中,你再也找不到他啦
----------------解决方案--------------------------------------------------------
赞一个
----------------解决方案--------------------------------------------------------
我觉得 学链表的时候还是画画图比较好
拿个箭头指指就明白了
----------------解决方案--------------------------------------------------------
书上的确有图,图能明白
----------------解决方案--------------------------------------------------------