diff --git a/DataStructures/Lists/CountSinglyLinkedListRecursion.java b/DataStructures/Lists/CountSinglyLinkedListRecursion.java new file mode 100644 index 000000000..652791be4 --- /dev/null +++ b/DataStructures/Lists/CountSinglyLinkedListRecursion.java @@ -0,0 +1,26 @@ +package DataStructures.Lists; + +public class CountSinglyLinkedListRecursion extends SinglyLinkedList { + public static void main(String[] args) { + CountSinglyLinkedListRecursion list = new CountSinglyLinkedListRecursion(); + for (int i = 1; i <= 5; ++i) { + list.insert(i); + } + assert list.count() == 5; + } + + /** + * Calculate the count of the list manually using recursion. + * + * @param head head of the list. + * @return count of the list. + */ + private int countRecursion(Node head) { + return head == null ? 0 : 1 + countRecursion(head.next); + } + + @Override + public int count() { + return countRecursion(getHead()); + } +}