Posted on by Kalkicode

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

Go program for Delete all even parity nodes from circular linked list. Here problem description and explanation.

``````package main
import "fmt"
// Go program for
// Remove all even parity nodes from a circular single linked list
data int
}
data,
nil,
}
}
}
nil,
nil,
}
}
} else {
this.tail.next = node
}
this.tail = node
}
// Display node element of circular linked list
} else {
// First node of linked list
for (temp != nil && temp != this.head) {
// Display node value
fmt.Print("  ", temp.data)
// Visit to next node
temp = temp.next
}
}
}
// Handles the request to find set bits in given integer
func(this CircularLinkedList) 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
}
return
}
var point * LinkNode = nil
for (temp != nil) {
if this.coutSetBit(temp.data) % 2 == 0 {
auxiliary = temp
// Visit to next node
temp = temp.next
if auxiliary == this.tail {
// Removing a single node
this.tail = nil
temp = nil
} else {
this.tail.next = temp
}
} else if auxiliary == this.tail {
if point != nil {
// When Remove last node
}
this.tail = point
} else {
if point != nil {
// When Remove last node
point.next = temp
}
}
auxiliary = nil
} else {
point = temp
// Visit to next node
temp = temp.next
// Stop the process
temp = nil
}
}
}
}
func main() {
// 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)
fmt.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()
fmt.Print("\n\n After Remove")
cll.display()
}``````

Output

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

After Remove
32  14  19  1``````

## Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

Categories
Relative Post