要实现双链表的倒序输出,可以使用递归或者迭代的方式。
public void reversePrint(Node node) {
if (node == null) {
return;
}
reversePrint(node.next);
System.out.print(node.data + " ");
}
public void reversePrint(Node node) {
Stack<Node> stack = new Stack<>();
Node current = node;
while (current != null) {
stack.push(current);
current = current.next;
}
while (!stack.isEmpty()) {
System.out.print(stack.pop().data + " ");
}
}
在上述代码中,假设双链表的节点类为Node
,包含数据域data
和指向下一个节点的引用next
,并且链表的头节点为node
。使用递归方式时,先递归调用reversePrint(node.next)
,然后再输出当前节点的数据域。使用迭代方式时,先将链表的节点依次入栈,然后再依次出栈并输出对应的数据。