ধরুন আমরা একটি একক লিঙ্ক তালিকা আছে. আমাদের প্রদত্ত লিঙ্কযুক্ত তালিকার প্রতিটি উপাদান একটি জোড়ায় উপস্থিত আছে কিনা তা পরীক্ষা করতে হবে, অন্য কথায় সমস্ত উপাদান এমনকি নাও ঘটে। সময়ের।
সুতরাং, যদি ইনপুটটি তালিকার মত হয় =[2,5,5,2,3,3], তাহলে আউটপুট হবে True।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- xor_res :=0, বর্তমান_নোড :=লিঙ্ক করা তালিকার প্রধান
- যদিও বর্তমান_নোড নাল নয়, করুন
- xor_res :=xor_res XOR বর্তমান_নোডের মান
- 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