从尾到头打印链表
描述
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
代码 (Java)
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> list = new ArrayList<>();
while (listNode != null) {
int val = listNode.val;
list.add(val);
listNode = listNode.next;
}
ArrayList<Integer> result = new ArrayList<>();
int index = list.size() - 1;
while (index >= 0) {
result.add(list.get(index));
index--;
}
return result;
}
}
代码2
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
Stack<Integer> stack = new Stack<>();
while (listNode != null) {
int val = listNode.val;
stack.push(val);
listNode = listNode.next;
}
ArrayList<Integer> result = new ArrayList<>();
while (!stack.empty()) {
result.add(stack.pop());
}
return result;
}
}
- 代码2中用的是栈 stack,时间和第一次代码的一样。