# Delete all even parity nodes from circular linked list in scala

Scala program for Delete all even parity nodes from circular linked list. Here problem description and other solutions.

``````// Scala program for
// Remove all even parity nodes from a circular single linked list
{
def this(data: Int)
{
this(data, null);
}
}
{
def this()
{
this(null, null);
}
def insert(value: Int): Unit = {
{
}
else
{
this.tail.next = node;
}
this.tail = node;
}
// Display node element of circular linked list
def display(): Unit = {
{
}
else
{
// First node of linked list
while (temp != null && temp != this.head)
{
// Display node value
print("  " + temp.data);
// Visit to next node
temp = temp.next;
}
}
}
// Handles the request to find set bits in given integer
def coutSetBit(num: Int): Int = {
var result: Int = num;
result = result - ((result >>> 1) & 1431655765);
result = (result & 858993459) + ((result >>> 2) & 858993459);
result = (result + (result >>> 4)) & 252645135;
result = result + (result >>> 8);
result = result + (result >>> 16);
result = result & 63;
return result;
}
def removeNode(): Unit = {
{
return;
}
while (temp != null)
{
if (coutSetBit(temp.data) % 2 == 0)
{
auxiliary = temp;
// Visit to next node
temp = temp.next;
{
if (auxiliary == this.tail)
{
// Removing a single node
this.tail = null;
temp = null;
}
else
{
this.tail.next = temp;
}
}
else if (auxiliary == this.tail)
{
if (point != null)
{
// When Remove last node
}
this.tail = point;
}
else
{
if (point != null)
{
// When Remove last node
point.next = temp;
}
}
auxiliary = null;
}
else
{
point = temp;
// Visit to next node
temp = temp.next;
{
// Stop the process
temp = null;
}
}
}
}
}
object Main
{
def main(args: Array[String]): Unit = {
// Insert node
cll.insert(3);
cll.insert(12);
cll.insert(32);
cll.insert(14);
cll.insert(27);
cll.insert(19);
cll.insert(1);
cll.insert(18);
print("\n Before Remove ");
cll.display();
/*
Node  Binary     Even Parity
3     (11)         Yes
12     (1100)       Yes
32     (100000)     No
14     (1110)       No
27     (11011)      Yes
19     (10011)      No
1         (1)       No
18     (10010)      Yes
*/
cll.removeNode();
print("\n\n After Remove");
cll.display();
}
}``````

Output

`````` Before Remove
3  12  32  14  27  19  1  18

After Remove