双向链表:
1、为了方便编程,以及节点的插入删除,可以在首尾增加一个空节点,方便一系列的操作和判断,最后一个节点指针指向空数据的节点或者指向空。
2、双向链表在访问元素时,可以从任何结点开始任意向前向后双向访问节点元素,不像循环单链表只能按顺序访问后节点。
3、因为有前后两个指针,双向链表删除前驱和后驱节点,以及插入节点的操作非常便捷。
循环链表:
1、循环链表没有尾指针,必须将最后的一个节点的后指针指向头节点
2、循环链表在访问元素时,可以从任何一个结点开始,但是只能顺序向后访问节点元素
3、循环链表在某个节点的前面插入节点时,需要先找到改节点的前驱节点,在进行操作,不像双向链表一样,可以在当前节点访问前驱节点,没有双向链表操作方便。