কম্পিউটার

পাইথনে লিঙ্ক করা তালিকার K-তম নোড খুঁজে বের করার জন্য প্রোগ্রাম


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

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

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • klast :=নোড

  • শেষ :=নোড

  • 0 থেকে k রেঞ্জের জন্য, করুন

    • শেষ :=শেষের পরের

  • শেষের পরেরটি শূন্য না হলে, করুন

    • শেষ :=শেষের পরের

    • klast :=klast এর পরবর্তী

  • ক্লাস্টের রিটার্ন মান

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

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. পাইথন প্রোগ্রাম একটি তালিকায় সবচেয়ে বড় সংখ্যা খুঁজে বের করতে