题解 | 输出单向链表中倒数第k个结点
输出单向链表中倒数第k个结点
https://www.nowcoder.com/practice/54404a78aec1435a81150f15f899417d
import sys
class ListNode:
def __init__(self,value=0,next_node=None):
self.value = value
self.next = next_node
lines = sys.stdin.readlines()
if not lines:
exit()
for i in range(0,len(lines),3):
n = int(lines[i])
nums = list(map(int,lines[i+1].split()))
k = int(lines[i+2])
head = ListNode(nums[0])
cur = head
for j in range(1,n):
cur.next = ListNode(nums[j])
cur = cur.next
cur1 = head
cur2 = head
for _ in range(k):
cur1 = cur1.next
while cur1:
cur1 = cur1.next
cur2 = cur2.next
print(cur2.value)
思路:双指针(一快一慢):快指针为空时,满指针刚好指到需要输出的节点
读取:一次输入多组数据,循环读取每组数据
涉及到python全局方法:next(),在__init__方法中要加上形参next,否则会出错
