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

পাইথনে লিংকড লিস্টে k-তম শেষ নোড খুঁজে বের করার প্রোগ্রাম


ধরা যাক একটি সিঙ্গলি লিংকড লিস্ট আছে, আমাদের এক পাসে k-তম শেষ নোডের মান (0-ইন্ডেক্সড) খুঁজে বের করতে হবে।

উদাহরণ: node = [5,4,6,3,4,7], k = 2 হলে আউটপুট 3, কারণ দ্বিতীয় শেষ নোড (ইন্ডেক্স 3) এর মান 3।

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

  • klast := node, last := node
  • i = 0 থেকে k-1 পর্যন্ত: last := last.next
  • যখন last.next null নয়: last := last.next, klast := klast.next
  • klast.val ফেরত দিন।

উদাহরণ কোড

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

class Solution:
    def solve(self, node, k):
        klast = node
        last = node
        for i in range(k):
            last = last.next
        while last.next:
            last = last.next
            klast = klast.next
        return klast.val

ob = Solution()
l1 = make_list([5,4,6,3,4,7])
print(ob.solve(l1, 2))

ইনপুট

[5,4,6,3,4,7], 2

আউটপুট

3
  1. পাইথনে লিংকড লিস্ট থেকে টার্গেট ভ্যালুর শেষ অকারেন্স মুছে ফেলার প্রোগ্রাম

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

  3. পাইথন প্রোগ্রাম লিস্টে সবচেয়ে ছোট সংখ্যা বের করা

  4. পাইথন প্রোগ্রাম লিস্টে সবচেয়ে বড় সংখ্যা বের করা