描述
从尾到头反过来打印出每个结点的值。
例子
Input:
1 -> 2 -> 3
Output:
3 2 1
思路
方法一:递归调用
方法二:使用栈
代码
class Node {
private Node next;
private int val;
public Node(Node next, int val) {
this.next = next;
this.val = val;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
public int getVal() {
return val;
}
public void setVal(int val) {
this.val = val;
}
}
public class Question004 {
public static void main(String[] args) {
Node node3 = new Node(null, 3);
Node node2 = new Node(node3, 2);
Node node1 = new Node(node2, 1);
Node node = node1;
//使用栈
Stack<Integer> stack = new Stack<>();
while (node != null) {
stack.push(node.getVal());
node = node.getNext();
}
while (!stack.empty()) {
System.out.println(stack.pop());
}
//递归调用
// printListFromTailToHead(node1);
}
public static void printListFromTailToHead(Node list) {
if (list.getNext() != null) {
printListFromTailToHead(list.getNext());
}
System.out.println(list.getVal());
}
}
本文介绍了一种链表数据结构的逆序打印方法,通过两种不同的实现方式:递归调用和栈操作,来反转链表节点的打印顺序。递归方法通过先递归到底再返回的方式实现,而栈方法则利用栈的后进先出特性,先压入所有节点值再弹出打印。

被折叠的 条评论
为什么被折叠?



