首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从一元链表中获取第10项的最有效方法

从一元链表中获取第10项的最有效方法
EN

Stack Overflow用户
提问于 2014-10-20 07:07:26
回答 1查看 46关注 0票数 0

从列表末尾获取第10项的最有效方法是什么

我是这样想的:

代码语言:javascript
复制
List[List.Count() - 10];
EN

回答 1

Stack Overflow用户

发布于 2014-10-20 07:12:05

如果你使用的是来自System.Collections.GenericList<T>,那么你实际上并没有使用单链表。它由一个数组支持,您可以简单地通过索引访问它,正如您已经建议的那样:

代码语言:javascript
复制
list[list.Count - 10];

这将是O(1)运算。在这样做之前,你可能应该检查list是否至少有10个元素,这样你就不会得到异常。

但是,如果您有自己的单链表结构,则必须迭代整个列表才能从列表的末尾获得第N项。您可以使用相同的方法,但这将强制在集合上进行两次往返-第一次获取元素的总数,第二次获取最后第N个元素。

如果你存储了你最后一次看到的N项目,例如在一个队列中,你可以只用一次迭代就能实现。这将是O(n)操作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26456400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档