剑指Offer刷题

三、从头到尾打印链表
这道题涉及到链表,我对链表掌握的不是很熟,在这里就借这个机会熟悉一下链表的内容。(这道题是我参考别人的思路解出来的,但是文章是我自己写的,算是我自己的收获或者思考吧)
题目如下:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
分析:
1) 这道题,牛客给提示了一个方法:
(链表结构,在Java中用需要自己定义一个ListNode类来生成链表对象)
public class ListNode {
int val;
ListNode next = null;

ListNode(int val) {
this.val = val;
}
}
说实话,我明白这个程序可以获取值,通过this引用当前对象的值。但是我不明白下边的代码中为啥调用val可以获取值,调用next是下一位我明白是因为有相关的方法,而val在API中我未找到。
2)我在网上找到一个程序,或许有助于小白理解
public class ListNode {
int val;
ListNode next; // 下一个链表对象
ListNode(int x) { val = x; } //赋值链表的值
}
3)注意审题,返回什么类型
4)注意集合的用法,这里有泛型
5)集合中没有length()方法,有size()方法
6)注意next()、get()方法的使用
7)遍历的时候,倒着来,所以没法用迭代器(或许可以,但是我不会)

题解如下:
剑指Offer刷题