ধরি আমাদের একটি সিংলি লিংকড লিস্ট আছে। আমাদের যাচাই করতে হবে লিস্টের প্রতিটি এলিমেন্ট জোড়ায় আছে কিনা, অর্থাৎ সব এলিমেন্ট জোড় সংখ্যকবার উপস্থিত।
উদাহরণস্বরূপ, list = [2, 5, 5, 2, 3, 3] হলে আউটপুট হবে True।
সমাধানের ধাপসমূহ
- xor_res := 0, current_node := লিস্টের হেড
- যতক্ষণ current_node null না হয়:
- xor_res := xor_res XOR current_node.val
- current_node := current_node.next
- xor_res যদি শূন্য হয় তবে true, অন্যথায় false রিটার্ন করুন
উদাহরণ
class ListNode:
def __init__(self, data, next=None):
self.val = data
self.next = next
def make_list(elements):
head = ListNode(elements[0])
for element in elements[1:]:
ptr = head
while ptr.next:
ptr = ptr.next
ptr.next = ListNode(element)
return head
def solve(head):
xor_res = 0
current_node = head
while current_node != None:
xor_res = xor_res ^ current_node.val
current_node = current_node.next
return False if xor_res else True
head = make_list([2, 5, 5, 2, 3, 3])
print(solve(head))
ইনপুট
[2, 5, 5, 2, 3, 3]
আউটপুট
True