How am I able to refer ‘head’,which is a non-static variable in getFirst() function in the given code?
class linkedlist{
private class Node{
int data;
Node next;
Node(int a){
this.data=a;
this.next=null;
}
}
private Node head;
private Node tail;
private int size=0;
public void addFirst(int val){
Node ob=new Node(val);
if(this.head==null){
this.head=ob;
this.tail=ob;
this.size++;
}else{
ob.next=this.head;
this.head=ob;
this.size++;
}
}
public void addLast(int val){
Node ob=new Node(val);
if(this.head==null){
this.head=ob;
this.tail=ob;
this.size++;
}else{/*
Node ob1=this.head;
while(ob1.next!=null){
ob1=ob1.next;
}ob1.next=ob;
*/
this.tail.next=ob;
this.tail=ob;
this.size++;
}
}
public void traverse(){
Node temp=this.head;
while(temp!=null){
System.out.print(temp.data+" ");
temp=temp.next;
}System.out.println("");
}
public int printsize(){
return this.size;
}
public int getFirst(){
return head.data;
}
public int getLast(){
return tail.data;
}
}
class client{
public static void main(String []atgs){
linkedlist l1=new linkedlist();
l1.addFirst(43);
l1.addLast(21);
l1.addLast(23);
l1.traverse();
l1.addFirst(34);
l1.traverse();
l1.addFirst(29);
System.out.println("SIZE OF LINKED LIST "+l1.printsize());
System.out.println(l1.getFirst());
System.out.println(l1.getLast());
}
}