ধরুন আমাদের একটি এককভাবে লিঙ্কযুক্ত তালিকা রয়েছে, আমাদের 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