package com.anuragkapur.pie.linkedlists;
/**
* @author anuragkapur
*/
public class MthFromLastInLinkedList<E> {
public E getElement(LinkedListElement<E> head, int m) {
LinkedListElement<E> trailer = head;
LinkedListElement<E> leader = head;
// move leader forward by m positions
for (int i = 0; i < m; i++) {
if (leader == null) {
return null;
}
leader = leader.getNext();
}
if (leader == null) {
return null;
}
while (leader.getNext() != null) {
leader = leader.getNext();
trailer = trailer.getNext();
}
return trailer.getData();
}
}