一個 Python 程式用於找出單鏈表中第 K 個倒數節點


假設我們有一個單鏈表,我們需要檢查找出第 K 個倒數節點(0 為起始索引)的值。我們必須單次遍歷解決這個問題。

所以,如果輸入如下 node = [5,4,6,3,4,7], k = 2,那麼輸出將是 3,因為第二個倒數(索引 3)節點的值為 3。

為了解決這個問題,我們將遵循以下步驟 −

  • klast := node

  • last := node

  • for i 從 0 到 k,操作

    • last := last 的 next

  • while last 的 next 不為空,操作

    • last := last 的 next

    • klast := klast 的 next

  • return 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

更新於: 09-Oct-2020

1K+ 瀏覽

開啟你的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.