我是Python的新手,在学习Python的过程中练习简单的数据结构。我尝试使用递归实现在Python中查找倒数第k个元素的问题:
这是我的代码:
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.
尽管我已经定义了函数并在创建类对象后调用它 -
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)