For this Question: Rahul has given a linked list and he wants to move all 0’s to the front of the linked list. Help Rahul to fulfill his wish.

<b>Note:</b>
The order of all other elements except 0 should be the same after rearrangement.
For custom input/output, enter the list in reverse order, and the output will also be in reverse order.

Example:
1 1 2 0 3 0 0 is the linked list given to Rahul. First, enter the list in reverse order so the new list will become 0 0 3 0 2 1 1. According to Rahul's wish, all zeros should be moved to the front of the linked list. Hence the output will be 0 0 0 3 2 1 1<b>User Task:</b>
Since this will be a functional problem, you don't have to take input. You just have to complete the function <b>moveZeroes()</b> that takes the head node as a parameter.

<b>Constraints:</b>
1 &le; T &le; 100
1 &le; N &le; 100000
0 &le; Node.data &le; 100000

<b>Note:- </b> 
The sum of all test cases doesn't exceed 10^5Return the head of the modified linked list.Input:
2
10
0 4 0 5 0 2 1 0 1 0
7
1 1 2 3 0 0 0

Output:
0 0 0 0 0 1 1 2 5 4
0 0 0 3 2 1 1, I have written this Solution Code:   static public Node moveZeroes(Node head){
        ArrayList<Integer> a=new ArrayList<>();
        int c=0;
        while(head!=null){
            if(head.data==0){
                c++;
            }
            else{
                a.add(head.data);
            }
            head=head.next;
        }
        head=null;
        for(int i=a.size()-1;i>=0;i--){
            if(head==null){
                head=new Node(a.get(i));
            }
            else{
                Node temp=new Node(a.get(i));
                temp.next=head;
                head=temp;
            }
        }
        while(c-->0){
            Node temp=new Node(0);
            temp.next=head;
            head=temp;
        }

        return head;
    }, In this Programming Language: Java, Now tell me if this Code is compilable or not?