题目描述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
java实现
1 //题目给定的链表条件 2 3 public class ListNode { 4 int val; 5 ListNode next = null; 6 7 public ListNode(int val) { 8 this.val = val; 9 } 10 11 }
1 public class Solution { 2 ArrayList<Integer> arrayList=new ArrayList<Integer>(); 3 public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { 4 if(listNode!=null){ 5 this.printListFromTailToHead(listNode.next); 6 arrayList.add(listNode.val); 7 } 8 return arrayList; 9 } 10 }
思路:
递归思想,不断将链表的next节点递归,当到达临界条件后开始回溯,结果即为链表的尾部开始返回并相应的增加到ArrayList()的尾部,则打印出来的即是从尾到头打印链表。