मान लीजिए हमारे पास एक सिंगली लिंक्ड लिस्ट है, हमें 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.nextnull नहीं है: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