package DataStructures.Lists; public class SearchSinglyLinkedListRecursion extends SinglyLinkedList { public static void main(String[] args) { SearchSinglyLinkedListRecursion list = new SearchSinglyLinkedListRecursion(); for (int i = 1; i <= 10; ++i) { list.insert(i); } for (int i = 1; i <= 10; ++i) { assert list.search(i); } assert !list.search(-1) && !list.search(100); } /** * Test if the value key is present in the list using recursion. * * @param node the head node. * @param key the value to be searched. * @return {@code true} if key is present in the list, otherwise {@code false}. */ private boolean searchRecursion(Node node, int key) { return node != null && (node.value == key || searchRecursion(node.next, key)); } @Override public boolean search(int key) { return searchRecursion(getHead(), key); } }