Dec
05
Custom Implementation of Singly LinkedList class in Java
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 :). Read more