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

পাইথনে দুটি সোর্টেড লিংকড লিস্ট মার্জ (Merge Two Sorted Lists)

দুটি সোর্টেড লিংকড লিস্ট A এবং B দেওয়া থাকে। এগুলো মার্জ করে একটা সোর্টেড লিস্ট C বানাতে হবে। রিকারসিভ পদ্ধতি ব্যবহার করা হয়েছে।

সমাধানের পদ্ধতি

  1. যদি A খালি হয়, B রিটার্ন করুন; যদি B খালি হয়, A রিটার্ন করুন।
  2. যদি A.val <= B.val, A.next = merge(A.next, B) এবং A রিটার্ন করুন।
  3. অন্যথায় B.next = merge(A, B.next) এবং B রিটার্ন করুন।

উদাহরণ কোড

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 mergeTwoLists(self, l1, l2):
        if not l1:
            return l2
        if not l2:
            return l1
        if l1.val <= l2.val:
            l1.next = self.mergeTwoLists(l1.next, l2)
            return l1
        else:
            l2.next = self.mergeTwoLists(l1, l2.next)
            return l2

head1 = make_list([1,2,4,7])
head2 = make_list([1,3,4,5,6,8])
ob1 = Solution()
head3 = ob1.mergeTwoLists(head1, head2)
print_list(head3)

ইনপুট

head1 = make_list([1,2,4,7]) head2 = make_list([1,3,4,5,6,8])

আউটপুট

[1, 1, 2, 3, 4, 4, 5, 6, 7, 8, ]
  1. পাইথনে দুটি পান্ডাস ডেটাফ্রেম মার্জ করা (merge)

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

  3. পাইথন প্রোগ্রাম: দুটি লিস্ট মার্জ করে সর্ট করা

  4. পাইথনে মার্জ সর্ট (Merge Sort) ব্যাখ্যা