从尾到头打印链表 代码 思路 坑 知识点

输入一个链表,从尾到头打印链表每个节点的值。

代码

1
2
3
4
5
6
7
8
9
10
11

* public class ListNode {
* int val;
* ListNode next = null;
*
* ListNode(int val) {
* this.val = val;
* }
* }
*
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.ArrayList;
public class {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
//存取链表中的数据
ArrayList<Integer> list = new ArrayList<>();
//存取list的反向数据
ArrayList<Integer> list1 = new ArrayList<>();
//如果为空,啥也不做
if(listNode == null) {
return list1;
}
while(listNode!=null) {
list.add(listNode.val);
listNode = listNode.next;
}
for(int i = list.size()-1;i>=0;i--) {
list1.add(list.get(i));
}
return list1;
}
}

思路

链表读取存储到ArrayList中,然后再从ArrayList反向读取存储到另一个ArrayList(就是栈的操作)

1 我不是很确定空的ArrayList输出是什么,是”[]”;

知识点

1 链表