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

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

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

import sys

class listNode():
    def __init__(self,val=0):
        self.next = None
        self.val = val
n=0
list1=[]
for line in sys.stdin:
    a = line.split()
    if n%3 == 0 :
        n+=1
        continue
    elif n % 3 == 2:
        head = listNode()
        for x in range(int(a[0]),0,-1):
            if n == 0:
                print()
            head.next = listNode(list1.pop())
            head = head.next
        print(int(head.val))
    else:
        list1 = a 
    n+=1
            
 #       if listNode(i).next:
 #           print(list1[int(i)].val)
 #   else:
 #       list1 = 
 #       list1.append(listNode(i))
 #       if a.index(i)< len(a)-1:
 #           listNode(i).next = listNode(a[a.index(i)+1])
 #   n+=1



具体的链表构建过程如下:

  • 创建一个 head 节点作为链表的头节点。
  • 根据读取的值列表从后向前遍历,每读取一个值,创建一个新的节点,并将其设为当前节点的下一个节点。
  • 最后,打印链表最后一个节点的值。

需要注意的是,代码中有一行 head.next = listNode(list1.pop()),这行代码的作用是将链表的头节点的下一个节点指向新创建的节点。由于链表的头节点在后续的循环中可能会被修改,所以在这里使用了一个额外的变量 head 来指向当前节点,并通过 head = head.next 将 head 更新为下一个节点。

全部评论
这一段chatgpt的解释也没完全看懂,先mark
点赞
送花
回复
分享
发布于 03-13 15:04 美国

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务