Only 1 TC passes pls help me

import java.util.Scanner;

public class Main {

private Node head;
private Node tail;
private int size;

private class Node {
	int data;
	Node next;

	Node(int data, Node next) {
		this.data = data;
		this.next = next;
	}
}

public Main() {
	this.head = this.tail = null;
	this.size = 0;
}

public int size() {
	return this.size;
}

public void addLast(int data) {
	Node node = new Node(data, null);
	if (this.size == 0) {
		this.tail = this.head = node;
	} else {
		this.tail.next = node;
		this.tail = node;
	}
	this.size++;
}

public void display(Node head) {
	while (head != null) {
		System.out.print(head.data + " ");
		head = head.next;
	}
}

public Node evenAfterOdd(Node head) {
	Node   odd = head, even = head.next ;
	while (even != null && even.next != null) {
         if(odd.data % 2 !=0) {
        	 odd = odd.next;
         }
         if(even.data %2 ==0) {
        	 even = even.next;
         }
         if(odd.data % 2 ==0 && even.data % 2 !=0) {
        	 int data  = odd.data;
        	 odd.data = even.data;
        	 even.data = data;
         }
    }
    return head;
}

public static void main(String[] args) {
	Scanner scanner = new Scanner(System.in);
	Main list = new Main();

	int S = scanner.nextInt();
	for (int i = 0; i < S; i++) {
		list.addLast(scanner.nextInt());
	}
	
	Node head = list.evenAfterOdd(list.head);
	 list.display(head);
}

}

help me…

debug your code for
7
1 2 4 3 8 5 6
ans shd be
1 3 5 2 4 8 6