双向链表的情况与单链表类似,只是增加了一个前置链(即指向前一结点的指针域) 算法等,与单链表很相似。只是需要安置好前向指针域。
注意点:在写关于链表的插入删除操作时,一定要注意该结点是不是最后一个结点,以免出现 p->next == NULL,p->next->next 未定义的情况,从而导致程序在特定条件下(比如你删除最后一个节点)出错。 也就是需要注意,最后一个节点和其他节点的操作不同,需要分开写。
以下是代码:
结果如下: