使用一个元素返回双向链表结尾的迭代器

时间:2017-10-19 10:33:44

标签: c++ list data-structures doubly-linked-list

我正在尝试实现一个双向链表,在那里我有一个end()函数,它返回一个指向列表末尾的迭代器。

如果我回来

tail -> next 

只要我的列表中有两个节点,但只要

,它就能正常工作

我插入一个元素并执行end(),我得到一个正常的错误,因为当我将一个元素插入到我的列表中时,如果列表为空并且尾部保持为nullptr,则将其设置为列表的头部。

所以我的解决方案是首先查看列表

if (numberOfElements == 1 && tail == nullptr) {
    // Here I return the head of the list as there is no tail and head is pointing to the last element in the list. 
}

然后如果有多个元素,我会返回尾部。

我已经测试了这个并且它工作正常,但这是一个很好的解决方案吗?如果没有,请你告诉我为什么?谢谢

0 个答案:

没有答案