2 回答
TA贡献1815条经验 获得超13个赞
没有错啊,双向链表是一条线,线的每两个挨着的节点互相连接的,就是说第一个节点指向第二个,第二个节点指向第一个和第三个,第三个节点指向第二个和第四个... 倒数第一个节点指向倒数第二个和第一个。
而循环链表是每两个挨着的节点只有前一个指向后一个,并不是互相连接的,也就是说第一个节点指向第二个,第二个节点指向第三个,第三个节点指向第四个... 倒是第一个节点只指向第一个。
这样下来,如果有n个节点,双向链表的连接数是2(n-1),循环链表的连接数是n。
TA贡献1816条经验 获得超4个赞
英文原文是这样的:
The reason you might want to create a circularly linked list is if you want the ability to go backward through a list but don’t want the extra overhead of creating a doubly linked list. You can move backward through a circularly linked list by moving forward through the end of the list to the node you are trying to reach.
个人认为此处中文翻译可能不太合适。
总之就是说循环链表最后一个节点的后继节点是第一个节点,从最后一个节点再往后移动,就到了第一个节点,可以重新遍历一次找到你要的节点的意思。
我自己的渣翻,改自谷歌翻译:
您可能想要创建循环链表的原因是:您希望向前访问链表,但不希望负担创建双向链表的额外开销。您可以在循环链表中向后移动直到超过最后一个节点(然后继续向后移动)来找到你需要达到的节点。
- 2 回答
- 0 关注
- 681 浏览
添加回答
举报