In this post, We will learn How to search an element in a Singly Linked List in Java?
Logic is Very Simple:
- If Linked List is Empty then search key will not be found so return false
- Traverse Linked List from head to last node(remember the last node always point to null) and compare Each node data with search key any of Node value and search key are equal then return true.
- if we do not get a search key while traversing throughout the Linked List(Step-2) then return false.
Below is the complete source code:
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 |
package com.kkjavatutorials.util; /** * How to search an element in a 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 takes search key as an argument and returns * true if search key found else false * @param seachKey data to be searched in list * @return return true if search key found else false */ public boolean contains(T seachKey) { if(head == null) { return false; } Node<T> currentNode = head; while(currentNode !=null) { if(currentNode.data == seachKey) { return true; } currentNode = currentNode.next; } return false; } /** * This method insert Node in Linked List * @param data has to insert in the List */ public void insert(T data) { Node<T> newNode = new Node<T>(data); 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 and display all data. */ public void displayLinkedList() { Node<T> currentNode = head; while(currentNode!= null) { System.out.print(currentNode.data+"->"); currentNode = currentNode.next; } System.out.println(currentNode); } public static void main(String[] args) { LinkedList<Integer> linkedList = new LinkedList<>(); linkedList.insert(5); linkedList.insert(10); linkedList.insert(15); linkedList.insert(20); linkedList.insert(25); System.out.println("Linked List is:"); linkedList.displayLinkedList(); int seachKey = 15; if(linkedList.contains(seachKey)) { System.out.println(seachKey +" found in Linked List!!"); }else { System.out.println(seachKey +" not found in Linked List!!"); } } } |
Output of this program:
Linked List is:
5->10->15->20->25->null
15 found in Linked List!!
You May Also Like:
- How to find middle node in a Singly Linked List in Java ?
- How to Insert node at the end of a Singly Linked List in Java ?
- How to insert a node at the beginning of a Singly Linked List in Java?
- Representation of Singly Linked List in Java ?
- How to check whether a linked list has a loop/cycle in java ?
- Queue Implementation using LinkedList in java
- Queue Implementation using an array in java
- Queue Data Structure
That’s all about the How to search an element in a Singly Linked List in Java ?
If you have any feedback or suggestion please feel free to drop in below comment box.