题目描述
输入一个链表,从尾到头打印链表每个节点的值。
给定对象:
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
因为是单向链表,要从最后一个打印,最好的思路为递归遍历链表,当到最后一个元素时停止递归,此时把递归回来的值加入列表即从后往前把链表值加入列表。
实现代码:
ArrayList<Integer> list = new ArrayList<Integer>();
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
if(listNode != null) {
printListFromTailToHead(listNode.next);
list.add(listNode.val);
}
return list;
}