Hey there!
Welcome to ClearUrDoubt.com.
In this post, we will look at the Custom implementation of the Singly LinkedList class in Java.
Simple implementation of Singly LinkedList:
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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
package com.clearurdoubt.impl; /** * * @author Sai Gowtham Badvity * SinglyLinkedList Implementation * @param <T> type of the object LinkedList holds. * */ public class MySinglyLinkedList<T> { private class Node { T value; Node next; } private Node head = null, tail = null; /** * Add Node to the List * @param val */ public void add(T val) { addLast(val); } /** * Add Node in the beginning the List * @param val */ public void addFirst(T val) { Node newNode = new Node(); newNode.value = val; newNode.next = head; head = newNode; if(tail == null) tail = newNode; } /** * Add Node at the end of the List * @param val */ public void addLast(T val) { if(head == null) { addFirst(val); return; } Node newNode = new Node(); newNode.value = val; newNode.next = null; tail.next = newNode; tail = newNode; } /** * Remove first node */ public void removeFirst() { if(head == null) return; else { head = head.next; } } /** * Remove last node */ public void removeLast() { Node temp = head; while(temp.next != tail) { temp = temp.next; } temp.next = null; tail = temp; } /** * Print the elements */ @Override public String toString() { StringBuilder builder = new StringBuilder(); Node temp = head; do { builder.append( temp.value + " -> "); temp = temp.next; } while(temp.next != null); builder.append( temp.value ); return builder.toString(); } } |
Let’s see the demo of MySinglyLinkedList class:
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 |
package com.clearurdoubt.impl; /** * * @author Sai Gowtham Badvity * Demo of the usage of MySinglyLinkedList * */ public class MySinglyLinkedListDemo { public static void main(String[] args) { MySinglyLinkedList<Integer> myList = new MySinglyLinkedList<Integer>(); myList.add(10); myList.add(20); myList.add(30); myList.addFirst(40); myList.addLast(50); System.out.println(); System.out.println("Elements in the list: " + myList); myList.removeFirst(); System.out.println(); System.out.println("After removing first node: " + myList); myList.removeLast(); System.out.println(); System.out.println("After removing last node: " + myList); myList.addFirst(40); System.out.println(); System.out.println("After adding a new node in the beginning: " + myList); } } |
Output:
Happy Learning :).
Please leave a reply in case of any queries.