我正在尝试实现一个双向链表,在那里我有一个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.
}
然后如果有多个元素,我会返回尾部。
我已经测试了这个并且它工作正常,但这是一个很好的解决方案吗?如果没有,请你告诉我为什么?谢谢