题目:
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
利用递归的方式,先遍历后面的节点,然后再加数据。
/**
* 从尾到头打印链表
* 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
*/
public class Solution {
ArrayList<Integer> list = new ArrayList<>();
public static void main(String[] args) {
Solution solution = new Solution();
ListNode listNode1 = new ListNode(1);
ListNode listNode2 = new ListNode(2);
ListNode listNode3 = new ListNode(3);
ListNode listNode4 = new ListNode(4);
ListNode listNode5 = new ListNode(5);
listNode1.next = listNode2;
listNode2.next = listNode3;
listNode3.next = listNode4;
listNode4.next = listNode5;
solution.printListFromTailToHead(listNode1);
for (Integer i : solution.list) {
System.out.println(i + ",");
}
}
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
if (listNode != null) {
if (listNode.next != null) {
printListFromTailToHead(listNode.next);
}
list.add(listNode.val);
}
return list;
}
}