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

পাইথনে দুটি লিংকড লিস্টের উপাদান ইন্টারলিভ (ইন্টারলিস) করার প্রোগ্রাম


ধরা যাক l1 এবং l2 নামে দুটি লিংকড লিস্ট আছে, l1-থেকে শুরু করে এই দুটির উপাদান ইন্টারলিভ করে একটি লিংকড লিস্ট বানাতে হবে। অবশিষ্ট নোডগুলো শেষে অ্যাপেন্ড হবে।

উদাহরণ: l1 = [5,4,6,3,4,7], l2 = [8,6,9] হলে আউটপুট [5,8,4,6,6,9,3,4,7]।

সমাধানের ধাপসমূহ

  • ans := l1
  • যখন l2 null নয়:
    • যদি ans null নয় এবং ans.next null নয়, তবে l2-র ভ্যালু দিয়ে নতুন নোড ans-র মাঝপথে ইনসার্ট করুন, ans এবং l2 آگাড় বাড়ান।
    • অন্যথায় ans.next = l2, ব্রেক করুন।
  • যদি ans null হয়, l2 ফেরত দিন।
  • l1 ফেরত দিন।

উদাহরণ কোড

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, l1, l2):
        ans = l1
        while l2:
            if ans:
                if ans.next != None:
                    newnode = ListNode(l2.val, None)
                    newnode.next = ans.next
                    ans.next = newnode
                    ans = newnode.next
                    l2 = l2.next
                else:
                    ans.next = l2
                    break
            else:
                return l2
        return l1

ob = Solution()
l1 = make_list([5,4,6,3,4,7])
l2 = make_list([8,6,9])
res = ob.solve(l1,l2)
print_list(res)

ইনপুট

[5,4,6,3,4,7],[8,6,9]

আউটপুট

[5, 8, 4, 6, 6, 9, 3, 4, 7, ]
  1. পাইথন প্রোগ্রাম - লিস্ট থেকে সেটের এলিমেন্ট এক্সট্র্যাক্ট করা

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

  3. Python দিয়ে লিংকড লিস্ট আকারে দেওয়া দুটি পলিনোমিয়াল যোগ করার প্রোগ্রাম

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