要實現雙鏈表的倒序輸出,可以使用遞歸或者迭代的方式。
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)
,然后再輸出當前節點的數據域。使用迭代方式時,先將鏈表的節點依次入棧,然后再依次出棧并輸出對應的數據。