मान लीजिए हमारे पास एक सिंगली लिंक्ड लिस्ट है। हमें जांचना है कि दी गई लिंक्ड लिस्ट में प्रत्येक तत्व एक जोड़े में मौजूद है या नहीं, दूसरे शब्दों में सभी तत्व सम संख्या में बार आते हैं।
इसलिए, यदि इनपुट list = [2,5,5,2,3,3] है, तो आउटपुट True होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
- xor_res := 0, current_node := लिंक्ड लिस्ट का हेड
- जब current_node null नहीं है, तब तक करें
- xor_res := xor_res XOR current_node का मान
- current_node := current_node का अगला
- False लौटाएं जब xor_res शून्येतर हो अन्यथा True
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
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