to provide more efficient solution to the problema stack structure can be used to push the data values onto the stackone at timeas we traverse through the linked list thenthe items can be popped and printed resulting in the reverse order listing this solution is provided in listing and the resulting stack after the iteration over the list and before the items are popped is shown in figure assuming the use of the linked list version of the stackprintliststack(has run time of ( )the proof of which is left as an exercise listing using stack to print linked list in reverse order print the contents of linked list in reverse order using stack from lliststack import stack def printliststackhead )create stack to store the items stack(iterate through the list and push each item onto the stack curnode head while curnode is not none pushcurnode data curnode curnode next repeatedly pop the items from the stack and print them until the stack is empty while not isempty(item pop(print item recursive solution for this problem is also possible to design the solutionwe use the divide and conquer strategy introduced in with this strategyyou solve the larger problem by dividing it into smaller problems of itself and solving the smaller parts individually linked list is by definition recursive structure that isthe list can be thought of as node linked to sublist of nodes figure the resulting stack after iterating over the linked list from figure