双向链表插入结点的理解。

这几天集中时间看了下单双链表的内容,发现双向链表的插入很难理解,今天恍然大悟,最重要的部分就是如何使得你的代码跟你的作图能够吻合起来,这样就不用死记硬背。

 

下图为双向链表的插入,知乎里偶然看见的一张图,这几步操作也非常明了,只是我图中画的不是很准,我都用红色箭头做了修改,这样就一目了然了。

总体来讲,要将s结点嵌入到双向链表中,需要切断并重新连接两根线,还要再额外连两根线,看图四,非常明显总共动了4根线,所以用了4条语句来做插入

1. s->next=p->next

这边p->next其实就是后面一个节点x,而不是x->pre,但图画的感觉像x-pre

2. s->prior=p

这步没什么问题

3. p->next=s

箭头也画的不好,画的像s->pre,其实是s

4. s->next->prior=s

s->next其实就是后面的一个节点x,所以就是x->prior连接了s

 

所以做完第三四步之后,就看到s和p连接上了,s和x也连上了。

 

相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页