题解 | #输出单向链表中倒数第k个结点#

输出单向链表中倒数第k个结点

https://www.nowcoder.com/practice/54404a78aec1435a81150f15f899417d

构造链表

  • 定义一个链表结构
  • 尾部添加链表
  • for循环链接,题目要求是倒数第k个,那我们正向for循环,取 链表长度 - k 的那个节点值,就是我们要的答案
  • 题目要求需要多次输入,所以要用while去保证可以多次输入样例
class ListNode:
    def __init__(self, val: int):
        self.val = val
        self.next = None


def append_link(head: ListNode, val: int):
    cur = head
    while cur.next is not None:
        cur = cur.next

    cur.next = ListNode(val)

    return head


def get_nth_from_the_end_in_link(head: ListNode, nth: int):
    link_length = 0
    cur = head
    while cur is not None:
        cur = cur.next
        link_length += 1

    count = link_length - nth
    res = head
    while count > 0 and res:
        count -= 1
        res = res.next
    
    if res:
        print(res.val)


while True:
    try:
        scan = int(input())
        numbers = list(map(int, input().split()))
        k = int(input())
        head = ListNode(numbers[0])
        for n in numbers[1:]:
            append_link(head, n)

        get_nth_from_the_end_in_link(head, k)
    except:
        break

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-01 11:27
点赞 评论 收藏
分享
06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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