কম্পিউটার টিউটোরিয়াল

পাইথনে লিংকড লিস্ট থেকে ডুপ্লিকেট এন্ট্রি মুছে ফেলার প্রোগ্রাম


মান ল করুন একটি সংখ্যার লিংকড লিস্ট, আমাদের সেই সংখ্যাগুলো মুছে ফেলতে হবে যা লিংকড লিস্টে একাধিকবার উপস্থিত থাকে (আউটপুটে শুধু একটি অকুরেন্স রাখব), আমাদের মূল লিংকড লিস্টে উপস্থিতির ক্রমও রক্ষা করতে হবে।

যদি ইনপুট হয় [2 -> 4 -> 6 -> 1 -> 4 -> 6 -> 9], তবে আউটপুট হবে [2 -> 4 -> 6 -> 1 -> 9]।

এটি সমাধান করতে আমরা নিম্নলিখিত ধাপগুলি অনুসরণ করব:

  • যদি node null না হয়, তবে:
    • l := একটি নতুন সেট
    • temp := node
    • temp.val কে l-এ যোগ করুন
    • যখন temp.next null না হয়:
      • যদি temp.next.val l-এ না থাকে, তবে temp.next.val কে l-এ যোগ করুন এবং temp := temp.next
      • অন্যথায়, temp.next := temp.next.next
  • node ফেরত দিন।

বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশনটি দেখুন:

উদাহরণ

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 print_list(head):    ptr = head    print('[', end = "")    while ptr:       print(ptr.val, end = ", ")       ptr = ptr.next       print(']') class Solution:    def solve(self, node):       if node:          l = set()          temp = node          l.add(temp.val)          while temp.next:             if temp.next.val not in l: l.add(temp.next.val)                temp = temp.next             else:                temp.next = temp.next.next          return node ob = Solution() head = make_list([2, 4, 6, 1, 4, 6, 9]) print_list(ob.solve(head))

ইনপুট

[2, 4, 6, 1, 4, 6, 9]

আউটপুট

[2, 4, 6, 1, 9, ]

  1. পাইথন প্রোগ্রাম - সেটের লিস্টে ডুপ্লিকেট সেট খুঁজে বের করা

  2. পাইথন প্রোগ্রাম: লিস্ট থেকে নির্দিষ্ট ইনডেক্সের এলিমেন্ট মুছে ফেলা

  3. পাইথন প্রোগ্রাম - ম্যাট্রিক্স থেকে ডুপ্লিকেট উপাদানযুক্ত সারি সরানো

  4. পাইথনে লিংকড লিস্ট থেকে m নোডের পর n নোড ডিলিট করার প্রোগ্রাম