我正在为我的家庭作业写一个链表,我需要为我的程序要求实现begin()和end()。
Begin()相当容易
Node* List::begin(){return head;}
我应该如何实现end()?
答案 0 :(得分:3)
您可以返回NULL
指针,或者如果您有自定义tail
节点,则返回该指针。如果它是循环双向链表,则可以返回标记节点。
请注意,检查列表末尾的正确方法是致电List::end()
,因此如果您正确设置了List
课程,那么这并不重要你返回,只要
Node* node = mylist.begin();
while (node != mylist.end()) { /*... loop */ }
有效,当您到达列表末尾时退出while
- 循环。所以主要的是List::end()
需要返回一些 unique ,如果你正在遍历列表的中间,那么你将永远不会遇到它。