7
2 8 9 1 5 4 3
O/P:
2 8 9 1 5 4 3
9 1 5 3 2 8 4
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Odd_Even_LinkedList {
public static class Node {
int data;
Node next;
}
public static class LinkedList {
Node head;
Node tail;
int size;
void addLast(int val) {
Node temp = new Node();
temp.data = val;
temp.next = null;
if (size == 0) {
head = tail = temp;
} else {
tail.next = temp;
tail = temp;
}
size++;
}
public int size() {
return size;
}
public void display() {
for (Node temp = head; temp != null; temp = temp.next) {
System.out.print(temp.data + " ");
}
System.out.println();
}
public void removeFirst() {
if (size == 0) {
System.out.println("List is empty");
} else if (size == 1) {
head = tail = null;
size = 0;
} else {
head = head.next;
size--;
}
}
// write your code here
public void oddEven() {
LinkedList odd = new LinkedList();
LinkedList even = new LinkedList();
Node temp = head;
while (temp != null) {
if (temp.data % 2 == 0) {
even.addLast(temp.data);
} else {
odd.addLast(temp.data);
}
temp = temp.next;
this.removeFirst();
}
// dono me data hai
if (odd.size > 0 && even.size > 0) {
odd.tail.next = even.head;
head = odd.head;
tail = even.tail;
size = odd.size + even.size;
} else if (odd.size > 0) { // sirf odd me data hai
head = odd.head;
tail = odd.tail;
size = odd.size;
} else if (even.size > 0) { // sirf even me data hai
head = even.head;
tail = even.tail;
size = even.size;
}
}
}
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n1 = Integer.parseInt(br.readLine());
LinkedList l1 = new LinkedList();
String[] values1 = br.readLine().split(" ");
for (int i = 0; i < n1; i++) {
int d = Integer.parseInt(values1[i]);
l1.addLast(d);
}
int a = Integer.parseInt(br.readLine());
int b = Integer.parseInt(br.readLine());
l1.display();
l1.oddEven();
l1.display();
}
}
No comments:
Post a Comment