题解 | #输出单向链表中倒数第k个结点#
输出单向链表中倒数第k个结点
https://www.nowcoder.com/practice/54404a78aec1435a81150f15f899417d
class Node:
def __init__(self,val) -> None:
self.val = val
self.next = None
class LinkList:
def __init__(self) -> None:
self.head = Node(0)
#根据列表顺序创建链表
def create_linklist(self,lt):
cur = self.head
for element in lt[1:]:
node = Node(element)
cur.next = node
cur = node
#反转链表
def reversa_linklist(self):
if self.head is None or self.head.next is None:
pass
cur = self.head
pre = None
while cur:
tmp = cur.next
cur.next = pre
pre = cur
cur = tmp
self.head = pre
return self
#获取链表的第k个节点的值
def get_value_k(self,k):
cur = self.head
count = 1
while count < k and cur.next:
cur = cur.next
count += 1
if count == k and cur:
return cur.val
else:
return None
while True:
try:
n = int(input())
lt = list(map(int,input().split()))
k = int(input())
except EOFError:
break
else:
ll = LinkList()
ll.head.val = lt[0]
ll.create_linklist(lt)
ll = ll.reversa_linklist()
print(ll.get_value_k(k))