我是新來的Python,並且在學習python的過程中練習簡單的數據結構。我嘗試使用遞歸在python中找到第k個到最後一個元素的問題:遞歸地查找第k個到單個鏈接列表的最後一個元素-Python
這是我的代碼:
def kthtoLast(self,head,k,i): #recursion
if(head==None):
return 0
i= kthtoLast(self,head.next,k) + 1
if(i==k):
print(head.node)
return i
但我得到一個錯誤 -
NameError: name 'kthtoLast' is not defined.
雖然我已經定義了功能並創建objec後,我叫它我班的筆 -
l=LinkedList()
l.kthtoLast(l.head,3,0)
任何人都可以請幫助我理解我要去哪裏錯了?
完整的代碼如下所示:
class Node(object):
def __init__(self,node,next=None):
self.node=node
self.next=next
class LinkedList(object):
def __init__(self,head=None):
self.head=head
def append(self,data):
new_node=Node(data,self.head)
self.head=new_node
def kLast(self,current,k): #recursion
if(current.next==None):
return 0
i= kLast(self,current.next,k) + 1
if(i==k):
print(current.node)
return i
l=LinkedList()
l.append(12)
l.append(45)
l.append(7988)
l.append(89)
l.append(74)
print(l.head)
l.kLast(l.head,3)
謝謝你。它的工作。點1是問題 –