मान लीजिए कि हमारे पास एक एकल लिंक की गई सूची है, हमें kth अंतिम नोड (0-अनुक्रमित) का मान ज्ञात करना है। हमें इसे सिंगल पास में हल करना होगा।
इसलिए, यदि इनपुट नोड =[5,4,6,3,4,7], के =2 जैसा है, तो आउटपुट 3 होगा, क्योंकि दूसरे अंतिम (इंडेक्स 3) नोड का मान 3 है।पी>
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
क्लास्ट:=नोड
-
अंतिम:=नोड
-
मेरे लिए 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