题解 | #从尾到头打印链表#
从尾到头打印链表
http://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035
先对链表进行反转,反转之后再存入List中,因为题目中没有提到不可改变链表结构,所以最后没有将链表翻转过来,大家可以再对链表进行反转。
import java.util.*;
public class Solution {
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> list = new ArrayList<>();
if (listNode == null) {
return list;
}
ListNode newhead = reverse(listNode);
while (newhead != null) {
list.add(newhead.val);
newhead = newhead.next;
}
return list;
}
public ListNode reverse(ListNode listnode) {
ListNode cur = null;
ListNode head =listnode;
if (head == null) {
return listnode;
}
while(head != null) {
ListNode temp = head;
temp = head.next;
head.next = cur;
cur = head;
head = temp;
}
return cur;
}
} 
查看18道真题和解析