In this post, We will learn How to implement a Circular Singly Linked List in Java?
What Is Circular Linked List:
Circular Linked List is a Special Kind of Linked list in which the last node again refers back to the previous node that’s why Linked List goes into an infinite loop; you can verify it by printing the Linked List
It will be better clear from the below Example.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
package com.kkjavatutorials.util; /** * Implementation a Circular Singly Linked List in Java ? * @author KK JavaTutorials */ public class LinkedList<T> { private Node<T> head; //This internal class represents Node in Linked List private static class Node<T>{ private T data; private Node<T> next; public Node(T data) { super(); this.data = data; this.next = null; } } /** * This method insert a Node in Linked List * @param newNode has to insert in the List */ public void insert(Node<T> newNode) { if(head == null) { head = newNode; }else { Node<T> currentNode = head; while (currentNode.next != null) { currentNode = currentNode.next; } currentNode.next = newNode; } } /** * Method which traverse Linked List from * first to last node and prints Node's value. */ public void displayLinkedList() { Node<T> currentNode = head; while(currentNode!= null) { System.out.print(currentNode.data+" "); currentNode = currentNode.next; } } public static void main(String[] args) { Node<Integer> node1 = new Node<Integer>(10); Node<Integer> node2 = new Node<Integer>(20); Node<Integer> node3 = new Node<Integer>(30); Node<Integer> node4 = new Node<Integer>(40); Node<Integer> node5 = new Node<Integer>(50); Node<Integer> node6 = new Node<Integer>(60); Node<Integer> node7 = new Node<Integer>(70); LinkedList<Integer> linkedList = new LinkedList<>(); linkedList.insert(node1); linkedList.insert(node2); linkedList.insert(node3); //Node with value 40 added first time linkedList.insert(node4); linkedList.insert(node5); linkedList.insert(node6); linkedList.insert(node7); //Node with value 40 added Second time linkedList.insert(node4); System.out.println("Original LinkedList:"); linkedList.displayLinkedList(); } } |
Output of this Program:
Original LinkedList:
10 20 30 40 50 60 70 40 50 60 70 40 50 60 70 40 50 60 70 40 50 60 70 40 50 60 70 40 50 60 70 40 50 60 70 40 50 60 70 ..………..
Above out shows first linked list is printed from first to the last node and then it is printing repeatedly 40 50 60 70 because Linked list went into an infinite loop reason it that I have added the same node(node4) twice.
You May Also Like:
- How to remove a given key from the Singly Linked List in Java ?
- How to remove a node from a Singly Linked List at a given position in Java?
- How to remove the last node from a Singly Linked List in Java
- How to remove the first node from a Singly Linked List in Java ?
- How to check whether a linked list has a loop/cycle in java?
That’s all about How to implement a Circular Singly Linked List in Java?
If you have any feedback or suggestion please feel free to drop in below comment box.