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