【发布时间】:2018-01-03 18:13:30
【问题描述】:
我正在尝试通过99 Swift Problems 并且我很早就在问题 4 上卡住了。我有一个链接列表,我试图找到它的长度。
我正计划遍历列表中的元素来计算它们。但是如果不符合 Sequence 和 IteratorProtocol,我就无法使用 for/in 循环进行迭代。我被困在所需的 next() 函数上。我不确定在这种情况下如何实现下一个功能,我希望得到一些指导。
这是我的链接列表:
public class List<T>: Sequence, IteratorProtocol {
public typealias Element = T
var value: T!
var nextItem: List<T>?
public convenience init!(_ values: T...) {
self.init(Array(values))
}
init!(_ values: Array<T>) {
var values2 = values
if values2.count == 0 {
return nil
}
value = values2.removeFirst()
nextItem = List(values2)
}
}
【问题讨论】:
标签: swift linked-list