假设您要在恒定空间环境中的Iterator
上实现List<List<Integer>>
,您将如何进行?
另一个要求是不允许使用堆栈或队列。
您必须定义hasNext()
和next()
函数。
答案 0 :(得分:1)
要遍历List
,您只需指向当前元素的单个变量。
方法hasNext
是对List
的大小和指针之间的简单测试。
下一个method
是使用位置指针处的元素的简单提取。
指针是int
,因此空格为 O(1)。您最终还可以保存一个List
大小的变量,但是在这种情况下,该空间为O(1)。
可以在List
的{{1}}中完成相同操作,只需保存两个指针(最终两个大小),并且可以扩展为嵌套数量的任何固定列表。它不能用于数量可变的嵌套列表,因为它们可能为n,因此在这种情况下,解决方案需要O(n)的空间。