输入一个链表,从尾到头打印链表每个节点的值。
输入描述:
输入为链表的表头
输出描述:
输出为需要打印的“新链表”的表头
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;
}
}
ps:递归的点在printListFromTailToHaed(listNode.next)这个节点,那么在最后一次递归方法返回以后,每一层的递归方法都会做一个arrayList.add(lizxstNode.val)这个操作,从最后一次到第一次,逆向的调用了后面的方法。因为之前的递归点已经返回了。
网友评论