Saturday, March 13, 2010

Reverse traversal of Linkedlist

package com.newproject.model;

class NodeObj
{
NodeObj(int argVal, String argStr)
{
iVal = argVal;
nodeName = argStr;
}
int iVal;
String nodeName;
NodeObj linkedRef;
}

public class ReverseList
{
private static NodeObj rootNode = null;
private static NodeObj tempNodeObj = null;

public static void buildLinkedList(NodeObj argNode)
{
boolean flag = false;
if (rootNode == null)
{
rootNode = argNode;
tempNodeObj = rootNode;
flag = true ;
}

while (tempNodeObj.linkedRef != null )
{
tempNodeObj = tempNodeObj.linkedRef;
}
if (!flag)
tempNodeObj.linkedRef = argNode;
}

public static void reverseLink(NodeObj argNode)
{
if (argNode.linkedRef != null)
{
reverseLink(argNode.linkedRef);
}
System.out.println(argNode.iVal);
}

public static void main(String[] args)
{
NodeObj no1 = new NodeObj(1, "Emp No 1");
buildLinkedList(no1);
NodeObj no2 = new NodeObj(2, "Emp No 2");
buildLinkedList(no2);
NodeObj no3 = new NodeObj(3, "Emp No 3");
buildLinkedList(no3);
NodeObj no4 = new NodeObj(4, "Emp No 4");
buildLinkedList(no4);
reverseLink(rootNode);

}

}

No comments:

Post a Comment