输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
实现思路:
- 先把链表进行翻转
- 从尾到头插入ArrayList
Code:
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
//先反转链表
ListNode prev = null;
ListNode cur = listNode;
ListNode newHead = null;
ArrayList<Integer> arrayList = new ArrayList<Integer>();
while (cur != null) {
ListNode curNext = cur.next;
if (cur.next == null) {
newHead = cur;
}
cur.next = prev;
prev = cur;
cur = curNext;
}
//从反转后的链表头开始遍历,往ArrayList中添加元素
cur = newHead;
while (cur != null) {
arrayList.add(cur.val);
cur = cur.next;
}
return arrayList;
}