import java.util.ArrayList;
public class Solution {
public static void main(String[] args)
{
Solution sol=new Solution();
ListNode node1=new ListNode(1);
ListNode node2=new ListNode(2);
ListNode node3=new ListNode(3);
ListNode node4=new ListNode(4);
node1.next=node2;
node2.next=node3;
node3.next=node4;
node4.next=null;
ArrayList<Integer> list=sol.printListFromTailToHead(node1);
for(Integer i:list)
{
System.out.print(i+" ");
}
}
public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
ArrayList<Integer> revNodeArray=new ArrayList<>();
if(listNode==null)
return revNodeArray;
else
{
ListNode curNode=listNode;
ListNode preNode=curNode;
ListNode nextNode=curNode.next;
preNode.next=null;
while(nextNode!=null)
{
curNode=nextNode;
nextNode=nextNode.next;
curNode.next=preNode;
preNode=curNode;
}
listNode=curNode;
while(curNode!=null)
{
revNodeArray.add(curNode.val);
curNode=curNode.next;
}
return revNodeArray;
}
}
}
class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}