SO已经存在一些问题来寻找中间元素。
如何在 O(n) 中找到长度为 n 的未排序数组中的第 k 个最大元素?
这是使用多个迭代器的不同方法,请您帮忙比较一下复杂性吗?
package linkedlist;
import java.util.Iterator;
import java.util.LinkedList;
public class LinkedListTest {
public static void main(String[] args) {
LinkedList<String> l = new LinkedList<String>();
l.add("11");
l.add("2");
l.add("3");
l.add("14");
l.add("5");
l.add("16");
l.add("7");
l.add("18");
l.add("9");
int i = 1;
Iterator<String> it = l.iterator();
Iterator<String> it1 = l.iterator();
Iterator<String> it2 = l.iterator();
String mid = null;
String third = null;
while(it.hasNext()){
i++;
it.next();
if(i%2==0){
mid = it1.next();
}
if(i%3==0){
third = it2.next();
}
}
System.out.println(mid);
System.out.println(third);
}
}
另外,如果您可以建议使用 Java 提供的实用程序类来编写更好的方法,尽量避免为 Node 等编写自定义代码?
任何帮助将不胜感激。