Display Reverse (recursive) - Linked List
1. You are given a partially written LinkedList class.Input Format
2. You are required to complete the body of displayReverse and displayReverseHelper functions. The function are expected to print in reverse the linked list without actually reversing it.
3. Input and Output is managed for you.
Note -> The online judge can't force you to write recursive function. But that is what the expectation is, the intention in to help you learn.
Input is managed for youOutput Format
Output is managed for youQuestion Video
1. Time complexity -> O(n)Sample Input
2. Space complexity -> O(n)
11Sample Output
1 2 3 4 5 6 7 8 9 10 11
100
200
1 2 3 4 5 6 7 8 9 10 11
11 10 9 8 7 6 5 4 3 2 1
200 1 2 3 4 5 6 7 8 9 10 11 100
-
Editorial
The problem deals with displaying the reversed linked list, recursively this time. In earlier problems, we developed an iterative solution but here we will come up with a recursive approach. The idea is simple where we just need to traverse the list till the end using recursion and after we hit the base case and start returning the function calls in recursion stack, then at that point we will print the corresponding element. This is similar to the print decreasing problem we discussed in recursion level 1.
Recursion Flow:
Below is the implementation in Java:
private void displayReverseHelper(Node node) { if (node == null) { return; } displayReverseHelper(node.next); System.out.print(node.data + " "); } public void displayReverse() { displayReverseHelper(head); System.out.println(); }
java false
Time Complexity: O(n)
The time complexity for the function is linear as we are traversing on every node.
Space Complexity: O(n)
The space complexity for the function is linear as we have n function calls hence we have consumed a linear space in the recursion stack.
-
Asked in Companies
-
Related Topics