Node curr=this.head;
Node evenHead=null;
Node evenTail=null;
Node oddHead=null;
Node oddTail=null;
while(curr!=null) {
if(curr.data %2== 0) {
if(evenHead==null) {
evenHead=evenTail=curr;
}else {
evenTail.next=curr;
evenTail=curr;
}
}
else {
if(oddHead==null) {
oddHead=oddTail=curr;
}else {
oddTail.next=curr;
oddTail=curr;
}
}
curr=curr.next;
}
oddTail.next=evenHead;
evenTail.next=null;