剑指offer:(3)单链表:从尾到头打印链表

来源:互联网 发布:python擅长做什么知乎 编辑:程序博客网 时间:2024/06/09 17:47
package co.com.jianzhioffer;import java.util.ArrayList;import java.util.List;import java.util.Stack;public class Solution3 { //递归static ArrayList<Integer> list=new ArrayList<Integer>();    public static ArrayList<Integer> printListFromTailToHead1(ListNode listNode) {     if(listNode != null){     printListFromTailToHead1(listNode.next);     list.add(listNode.val);     }    return list;            }//栈    public static ArrayList<Integer> printListFromTailToHead2(ListNode listNode) {     ArrayList<Integer> list = new ArrayList<Integer>();     Stack<Integer> stack = new Stack<Integer>();    while(listNode != null){   stack.push(listNode.val);   listNode = listNode.next;    }    while(!stack.isEmpty()){    int temp = stack.pop();    list.add(temp);    }      return list;          }        public static void main(String[] args) {ListNode listNode1 = new ListNode(1);ListNode listNode2 = new ListNode(2);ListNode listNode3 = new ListNode(3);listNode1.next = listNode2;listNode2.next = listNode3;System.out.println(printListFromTailToHead1(listNode1));}} class ListNode {        int val;        ListNode next = null;       ListNode(int val) {            this.val = val;        }    }

0 0