Segregate even and odd nodes in a Linked List Java
- Get link
- X
- Other Apps
PROGRAM TO SEGREGATE EVEN AND ODD NODES IN A LINKED LIST
import
java.io.*;
class
LinkedList {
Node head;
// head of list
/* Linked list Node*/
class
Node
{
int
data;
Node next;
Node(
int
d)
{
data = d;
next =
null
;
}
}
public
void
segregateEvenOdd() {
Node evenStart =
null
;
Node evenEnd =
null
;
Node oddStart =
null
;
Node oddEnd =
null
;
Node currentNode = head;
while
(currentNode !=
null
) {
int
element = currentNode.data;
if
(element %
2
==
0
) {
if
(evenStart ==
null
) {
evenStart = currentNode;
evenEnd = evenStart;
}
else
{
evenEnd.next = currentNode;
evenEnd = evenEnd.next;
}
}
else
{
if
(oddStart ==
null
) {
oddStart = currentNode;
oddEnd = oddStart;
}
else
{
oddEnd.next = currentNode;
oddEnd = oddEnd.next;
}
}
// Move head pointer one step in forward direction
currentNode = currentNode.next;
}
if
(oddStart ==
null
|| evenStart ==
null
) {
return
;
}
evenEnd.next = oddStart;
oddEnd.next =
null
;
head=evenStart;
}
/* Given a reference (pointer to pointer) to the head
of a list and an int, push a new node on the front
of the list. */
void
push(
int
new_data)
{
/* 1 & 2: Allocate the Node &
Put in the data*/
Node new_node =
new
Node(new_data);
/* 3. Make next of new Node as head */
new_node.next = head;
/* 4. Move the head to point to new Node */
head = new_node;
}
// Utility function to print a linked list
void
printList()
{
Node temp = head;
while
(temp !=
null
)
{
System.out.print(temp.data+
" "
);
temp = temp.next;
}
System.out.println();
}
/* Driver program to test above functions */
public
static
void
main(String args[])
{
LinkedList llist =
new
LinkedList();
llist.push(
11
);
llist.push(
10
);
llist.push(
9
);
llist.push(
6
);
llist.push(
4
);
llist.push(
1
);
llist.push(
0
);
System.out.println(
"Origional Linked List"
);
llist.printList();
llist.segregateEvenOdd();
System.out.println(
"Modified Linked List"
);
llist.printList();
}
}
OUTPUT
Origional Linked List 0 1 4 6 9 10 11 Modified Linked List 0 4 6 10 1 9 11
- Get link
- X
- Other Apps
Comments
Post a Comment