class Main {
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.insert(18);
list.insert(45);
list.insert(12);
list.insertAtStart(25);
list.insertAt(0,55);
list.deleteAt(2);
list.show();
}
}
public class Node {
int nodeData;
Node nodeReference;
}
public class LinkedList{
Node head;
public void insert(int newNode){
Node node = new Node();
node.nodeData = newNode;
node.nodeReference = null;
// Condition for first node
if(head == null){
head = node;
}else{
Node n = head;
while(n.nodeReference != null){
n = n.nodeReference;
}
n.nodeReference = node;
}
}
public void insertAt(int position, int newNode)
{
Node node = new Node();
node.nodeData = newNode;
node.nodeReference = null;
if(position == 0){
insertAtStart(newNode);
}else{
Node n = head;
for(int i=0; i<position-1; i++)
{
n = n.nodeReference;
}
node.nodeReference = n.nodeReference;
n.nodeReference = node;
}
}
public void insertAtStart(int newNode)
{
Node node = new Node();
node.nodeData = newNode;
node.nodeReference = head;
head = node;
}
public void deleteAt(int position){
// Change node reference
// delete first node / head
if(position == 0){
head = head.nodeReference;
}else{
Node n = head;
Node oldNode = null;
for(int i=0; i<position-1; i++)
{
n = n.nodeReference;
}
oldNode = n.nodeReference;
n.nodeReference = oldNode.nodeReference;
System.out.println("oldNode "+ oldNode.nodeData);
}
}
public void show(){
Node node = head;
while(node.nodeReference != null){
System.out.println(node.nodeData);
node = node.nodeReference;
}
// to display last node in linkedlist
System.out.println(node.nodeData);
}
}