题解 | 输出单向链表中倒数第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,否则会出错

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务