There has been some questions already on SO to find middle element.
How to find the kth largest element in an unsorted array of length n in O(n)?
Here is a different approach using multiple Iterators, can you please help to compare this in terms of complexity ?
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);
}
}
Also if you could suggest better way of writing this using utility classes provided by Java, trying to avoid writing custom code for Node etc ?
Any help would be highly appreciated.