题目描述
输入一个链表,从尾到头打印链表每个节点的值。
输入描述: 输入为链表的表头
输出描述: 输出为需要打印的“新链表”的表头
思路:
如果反转链表,会破坏链表原来的结果。所以利用数据结果栈。
import java.util.ArrayList;
import java.util.Stack;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> result=new ArrayList<Integer>();
if(listNode==null)
return result;
//遍历放入栈
Stack<Integer> stack=new Stack<>();
ListNode pNode=listNode;
do{
stack.add(pNode.val);
pNode=pNode.next;
}while(pNode!=null);
//遍历栈
while(!stack.isEmpty()){
result.add(stack.pop());
}
return result;
}
}
`