输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
思路:
- 用栈
- 用递归实现类似于栈的效果
//定义ListNode
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
}
}
public class PrintRevList {
int [] a;
int i = 0;
public int[] reversePrint(ListNode head) {
rev(head);
return a;
}
void rev(ListNode node){
if (node == null){
//创建数组并初始化i
a = new int[i];
i = 0;
return;
}
//每递归一次数组长度+1
i++;
rev(node.next);
//从i=0开始给a数组赋值
a[i] = node.val;
i++;
}
}