题目描述:
输入一个链表,从尾到头打印链表每个节点的值。输入描述: 输入为链表的表头
输出描述: 输出为需要打印的“新链表”的表头
代码如下:
import java.util.ArrayList;
import java.util.Stack;
public class PrintList {
public static class ListNode{
int val;
ListNode next;
public ListNode(int val){
this.val = val;
}
}
public static void main(String[] args) {
ListNode node = new ListNode(1);
node.next = new ListNode(5);
node.next.next = new ListNode(3);
printListFromTailToHead(node);
}
/**
* 使用栈结构实现倒序打印
* @param listNode
* @return
*/
public static ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
Stack<ListNode>stack = new Stack<>();
while(listNode != null){
stack.push(listNode);
listNode = listNode.next;
}
ArrayList<Integer>list = new ArrayList<>();
ListNode temp;
while(!stack.isEmpty()){
temp = stack.pop();
System.out.println(temp.val + " ");
list.add(temp.val);
}
return list;
}
}