In this Data structures tutorial we will learn what is Singly LinkedList in java with example, diagrams and program. We will learn how to implement your own Singly LinkedList in java. We will learn how to insert and delete at last of Singly LinkedList in java. We will also learn complexity of insert and delete operations at last of Singly LinkedList in java.

What is Singly LinkedList in java?

A linked list is a data structure consisting of a group of nodes which together represent a sequence. Under the simplest form, each node is composed of a data and a reference (in other words, a link) to the next node in the sequence.

What is complexity of insert and delete at last of Singly LinkedList in java?

Complexity of insertion and deletion at first of Singly LinkedList is O(n) in java.

(We could maintain pointer called last as well which points to last node in LinkedList, complexity of insertion and deletion in that case will be O(1), we have maintained last pointer in Doubly LinkedList).

Important methods used in below Singly LinkedList program/example are as follows>

insertLast(int data)- Insert New Node at last of Singly LinkedList in java.

deleteLast() -Deletes last Node of Singly LinkedList in java.

displayLinkedList() - displays Singly LinkedList in java.

Logic explanation to insert and delete at last of Singly LinkedList with diagram in java >

Let’s see how we are going to insert node at last of Singly LinkedList in java :-

Here we see that newNode start pointing to null and last node start pointing to newNode.

Let’s see how we are going delete node from last in Singly LinkedList in java:-

Here we see that first previous node’s next has started pointing to null and there is no live reference to current, so current has become eligible for garbage collection by JVM as well.

Full Program/example of insert and delete at last of Singly LinkedList in java >

/**

*Exception to indicate that Singly LinkedList is empty.

*/

classLinkedListEmptyExceptionextends RuntimeException{

public LinkedListEmptyException(){

super();

}

public LinkedListEmptyException(String message){

super(message);

}

}

/**

*Node class, which holds data and contains next which points to next Node.

*/

class Node {

publicintdata; // data in Node.

public Node next; // points to next Node in list.

/**

* Constructor

*/

public Node(int data){

this.data = data;

}

/**

* Display Node's data

*/

publicvoid displayNode() {

System.out.print( data + " ");

}

}

/**

* Singly LinkedList class

*/

class LinkedList {

private Node first; // ref to first link on list

/**

* LinkedList constructor

*/

public LinkedList(){

first = null;

}

/**

* Inserts new Node at last of Singly LinkedList.

*/

publicvoid insertLast(int data){

Node newNode = new Node(data);//Creation of New Node.

if(first==null){ //means LinkedList is empty, make first point to new Node.

first=newNode; //first ---> newNode

return;

}

Node tempNode = first; // save reference to first Node in tempNode- so that we could return saved reference.

while(tempNode.next!=null){ //Executes until we don't find last Node of LinkedList.

//If next of some Node is pointing to null, that means it's a last Node.

if(first.next==null){ //means LinkedList consists of only one element, delete that.

Node tempNode = first; // save reference to first Node in tempNode- so that we could return saved reference.

first=first.next;// delete firstNode (make first point to secondNode)

return tempNode; //return deleted Node.

}

//Case3: when there are atLeast two elements in LinkedList

Node previous=null;

Node current=first;

while(current.next!=null){//Executes until we don't find last Node of LinkedList.

//If next of some Node is pointing to null, that means it's a last Node.

previous=current;

current=current.next; //move to next node.

}

previous.next=null; //Now, previous is pointing to second last Node of LinkiedList,

//make it point to null [it byPasses current Node(last Node of LinkedList) which was in between]

return current;

}

/**

* Display LinkedList

*/

publicvoiddisplayLinkedList() {

System.out.print("Displaying LinkedList [first--->last]: ");

Node tempDisplay = first; // start at the beginning of linkedList

while (tempDisplay != null){ // Executes until we don't find end of list.

tempDisplay.displayNode();

tempDisplay = tempDisplay.next; // move to next Node

}

System.out.println();

}

}

/** Copyright (c), AnkitMittal JavaMadeSoEasy.com */

/**

* Main class - To test Singly LinkedList.

*/

publicclass SinglyLinkedListInsertDeleteLastExample {

publicstaticvoid main(String[] args) {

LinkedList linkedList = new LinkedList(); // creation of Linked List

linkedList.insertLast(11);

linkedList.insertLast(21);

linkedList.insertLast(59);

linkedList.insertLast(14);

linkedList.insertLast(39);

linkedList.displayLinkedList(); // display LinkedList

System.out.print("Deleted Nodes: ");

Node deletedNode = linkedList.deleteLast(); //delete Node

deletedNode.displayNode(); //display deleted Node.

deletedNode = linkedList.deleteLast(); //delete Node

deletedNode.displayNode(); //display deleted Node.

System.out.println();// sysout used to format output

linkedList.displayLinkedList(); //Again display LinkedList

}

}

/*OUTPUT

Displaying LinkedList [first--->last]: 11 21 59 14 39

Deleted Nodes: 39 14

Displaying LinkedList [first--->last]: 11 21 59

*/

Complexity of insert and delete at last in Singly LinkedList in java >

Insertion at last in Singly LinkedList in java >

Best Case : O(1), when there is no node in Singly LinkedList and insertion is to be done at first.

Average Case :O(n)

Worst Case : O(n)

Deletion at last in Singly LinkedList in java >

Best Case : O(1), when there is only one node in Singly LinkedList.

Average Case :O(n)

Worst Case : O(n)

So in this Data structures tutorial we learned what is Singly LinkedList in java with example, diagrams and program. We learned how to implement your own Singly LinkedList in java. We learned how to insert and delete at last of Singly LinkedList in java. We also learned complexity of insert and delete operations at last of Singly LinkedList in java.

Having any doubt? or you you liked the tutorial! Please comment in below section.