输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。
输入:
{1,2,3}
返回值:
[3,2,1]
最简单的一道,自己第一次做只想到头插法和借助堆栈,总结一下讨论里的递归分析。
好久没用java写,首先是java的结构体(c语言那种):
/**
* public class ListNode {
* int val;
* ListNode next = null;
*
* ListNode(int val) {
* this.val = val;
* }
* }
*
*/
java里面的结构体都用类表示。
其次是递归的思想,
public class Solution {
ArrayList<Integer> arrayList=new ArrayList<Integer>();
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
if(listNode!=null){
this.printListFromTailToHead(listNode.next);
arrayList.add(listNode.val);
}
return arrayList;
}
}
由于它是倒序输出,首先就是获取listnode的最后一个元素,通过调用函数+函数内部进行遍历下一节点 实现递归。在最深处(最后一点处)获取值。就是最简单斐波那契得的思想。
ArrayList<Integer> arrayList=new ArrayList<Integer>();
这个是java创建列表。
i小宋