思路
从尾到头打印链表有点像栈的数据结构模型。因此,这里我们可以使用一个栈去保存链表中的所有节点,然后pop栈顶元素,打印即可。但这不仅增加了一定的空间复杂度,也增加了一定的时间复杂度。
这个问题无非就是打印链表中的值而已,如果我们能够按照栈调用的方式对其进行调用,问题不就迎刃而解了吗。
递归恰好就是一个栈调用的方式,因此,我们完全可以使用递归巧妙地解决这个问题。
代码
public void printReverse(Node node) { if (node != null) { printReverse(node.next); System.out.println(node.value); } else { return; } }