public class FindNthToLast {
public static void main(String[] args){
LinkedListNode node
= LinkedListNode.createLinkedList(new int[]{1,2,3,4,5,6,7,8,9});
LinkedListNode.print(node);
System.out.println("\n=====================");
LinkedListNode found = find(node, 2);
System.out.println(found.data);
}
private static int count = 0;
public static LinkedListNode find(LinkedListNode head, int n){
if (head == null){
return null;
}
LinkedListNode found = find(head.next, n);
count++;
if (count==n){
return head;
}
return found;
}
}
public class LinkedListNode {
public int data;
public LinkedListNode next;
public LinkedListNode(int data) {
super();
this.data = data;
}
public static void print(LinkedListNode head){
LinkedListNode current = head;
while (current != null){
System.out.print(current.data+" ");
current = current.next;
}
}
public static LinkedListNode createLinkedList(int[] arr){
LinkedListNode head = new LinkedListNode(arr[0]);
LinkedListNode current = head;
for (int i=1; i<arr.length; i++){
LinkedListNode temp = new LinkedListNode(arr[i]);
current.next = temp;
current = temp;
}
return head;
}
}
Tuesday, 28 January 2014
Find Nth to last element in a singly linked list
Use recursion
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment