题目概述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
考察点:
链表、递归思想。
实现思路
-
递归的思路,只要链表不为空,一直往后进行遍历,然后直到到达链表的末尾,就开始用数组保存下来结果
Java代码(可以直接复制使用)
public class PrintListFromTailToHead {
private ArrayList<Integer> result = new ArrayList<Integer>();
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
if (listNode == null) {
return new ArrayList<Integer>();
}
//递归添加
printListVal(listNode);
return result;
}
private void printListVal(ListNode curNode) {
if (curNode == null) {
return;
}
printListVal(curNode.next);
//回溯时添加
result.add(curNode.val);
}
/**
* 结点类
*/
class ListNode {
int val;
ListNode next;
ListNode(int val) {
this.val = val;
}
}
}
有问题的小伙伴可以在下方留言哦