解题思路:先将链表翻转,以及统计结点个数,最后再从尾部往前遍历
class Solution {
public int[] reversePrint(ListNode head) {
ListNode pre=null;
ListNode cur=head;
int count=0; //记录结点个数
//先翻转链表,统计结点个数,最后再从翻转后的链表头部开始输出
while(cur!=null){ //循环结束,此时pre指向的是链表的头结点
ListNode next=cur.next; //保存当前结点的下一个结点
cur.next=pre;
pre=cur;
cur=next;
count++;
}
int[] a=new int[count];
int i=0;
while(pre!=null){ //从链尾开始往前遍历
a[i]=pre.val;
i++;
pre=pre.next;
}
return a;
}
}