剑指offer printListFromTailToHead 从尾到头打印链表

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; 
}

搞不懂代码中this的含义,而且arrayList.add(listNode.val); 添加不知这个节点的值吗?为什么会是下一个节点的值a ?求大神解答

阅读 1.8k
1 个回答

this代表当前对象,创建Solution对象调用printListFromTailToHead方法,this指向Solution对象,在这段代码中可用可不用。递归代码执行顺序是遍历到最后一个ListNode,ArrayList再从最后一个ListNodeadd它的val.
例如7————>8————>9————>10,先用遍历到10,再把10add进list,再add9,所以实现了从尾到头打印链表。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题