题目描述
输入一个链表,从尾到头打印链表每个节点的值。
输入描述:
输入为链表的表头
输出描述:
输出为需要打印的“新链表”的表头
代码如下:
/** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.val = val; * } * } * */ import java.util.ArrayList; import java.util.Stack;//天哪,为了引包,我花费了1个小时找不到问题,就说怎么用不了stack呢,真的好傻啊 public class Solution { //输入个链表的头结点,从尾到头反过来打印出每个结点的值 使用栈的方式进行 public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { /* Stack<Integer> stack=new Stack<Integer>(); //边界判断 if(listNode==null){ ArrayList list=new ArrayList(); return list; } //Stack<Integer> stack = new Stack<Integer>(); while(listNode!=null){ stack.push(listNode.val); listNode=listNode.next; } ArrayList<Integer> arrlist=new ArrayList<Integer>(); while(!stack.isEmpty()){ arrlist.add(stack.pop()); } return arrlist; }*/ Stack<Integer> stack=new Stack<Integer>(); while(listNode!=null){ stack.push(listNode.val);//入栈 listNode=listNode.next; } ArrayList<Integer> list=new ArrayList<Integer>(); while(!stack.isEmpty()){ list.add(stack.pop());//出栈放在数组中 } return list; } }