从尾到头打印链表
来源:https://www.nowcoder.com/exam/oj/ta?page=1&tpId=13&type=13
描述
输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。
如输入{1,2,3}的链表如下图:
返回一个数组为[3,2,1]
0 <= 链表长度 <= 10000
解题代码:
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
ListNode listNode = new ListNode(1);
listNode.next = new ListNode(2);
listNode.next.next = new ListNode(3);
solution.printListFromTailToHead(listNode);
}
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ListNode next = listNode;
ArrayList<Integer> list = new ArrayList<Integer>();
while (next != null) {
list.add(next.val);
next = next.next;
}
System.out.print(list);
Collections.reverse(list);
System.out.println(list);
return list;
}
}
class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}