Pythonは一方向チェーンテーブルの最下位からk番目のノードを見つけた
6656 ワード
1つのアルゴリズムを実現して、一方向チェーンテーブルの中で最後からk番目のノードを探し出します
class Node():
def __init__(self,val):
self.val = val
self.next = None
class LinkList:
def __init__(self):
self.head = Node(Node)
def init(self,iter):
p = self.head
for i in iter:
p.next = Node(i)
p = p.next
def find_re_k(self,k): # : p1 head, k , P1 p2,p1 head, p1,p2 , p2 ,p1 k 。.,
p1 = self.head#p1 head
i =0
while i< k-1:
p1 = p1.next
i += 1
p2 = p1 #P1 p2
p1 = self.head #p1 head
while p2.next is not None:
#p1,p2
p2 = p2.next
p1 = p1.next
return p1.val
def __str__(self):
l = []
p = self.head.next
while p is not None:
l.append(p.val)
p = p.next
return str(l)
if __name__ == '__main__':
l = LinkList()
l1 = (1,2,3,4)
l.init(l1)
print(l)
print(l.find_re_k(1))