segregate linked list with even numbers first later odd numbers
public class SegregatingEvenAndoddLL {
public class Node {
int data;
Node next;
public Node(int data) {
this.data = data;
this.next = null;
}
}
public static Node head;
public static Node tail;
public void addFirst(int data) {
Node newNode = new Node(data);
newNode.next = head;
head = newNode;
}
public void print() {
Node temp = head;
while (temp != null) {
System.out.print(temp.data + " ");
temp = temp.next;
}
System.out.println();
}
public void Segregate() {
if (head == null) {
return;
}
Node even = new Node(0);
Node odd = new Node(0);
Node evenTail = even;
Node oddTail = odd;
Node temp = head;
while (temp != null) {
if (temp.data % 2 == 0) {
evenTail.next = temp;
evenTail = evenTail.next;
} else {
oddTail.next = temp;
oddTail = oddTail.next;
}
temp = temp.next;
}
evenTail.next = odd.next;
oddTail.next = null;
System.out.println(even.next);
}
public static void main(String[] args) {
SegregatingEvenAndoddLL ll = new SegregatingEvenAndoddLL();
ll.addFirst(6);
ll.addFirst(1);
ll.addFirst(4);
ll.addFirst(5);
ll.addFirst(10);
ll.addFirst(12);
ll.addFirst(8);
ll.print();
ll.Segregate();
ll.print();
}
}
Comments
Post a Comment