From 093cc37806ac4ed5e4f8b1d51fda2029e986cdb8 Mon Sep 17 00:00:00 2001 From: shellhub Date: Tue, 22 Sep 2020 11:06:57 +0800 Subject: [PATCH] count singly linked list using recursion --- .../Lists/CountSinglyLinkedListRecursion.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 DataStructures/Lists/CountSinglyLinkedListRecursion.java 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()); + } +}