题解 | 从单向链表中删除指定值的节点

def queue_link(n):
    # 解析输入字符串
    parts = n.split()
    total = int(parts[0])  # 链表中节点的总数
    head_value = int(parts[1])  # 头节点的值
    k = int(parts[-1])  # 需要删除的节点值
    pairs = [(int(parts[i]), int(parts[i+1])) for i in range(2, len(parts)-1, 2)]  # n-1 个二元组 (a, b)
    
    # 构造链表
    linked_list = [head_value]  # 初始化链表,头节点
    for a, b in pairs:
        # 找到值为 b 的节点,并在其后插入值为 a 的节点
        index = linked_list.index(b)  # 找到值为 b 的节点的索引
        linked_list.insert(index + 1, a)  # 在其后插入新节点
    
    # 删除值为 k 的节点
    linked_list = [val for val in linked_list if val != k]  # 列表推导式删除所有值为 k 的节点
    
    # 将链表转换为字符串输出
    return ' '.join(map(str, linked_list))

# 输入
n = input().strip()
# 调用函数并打印结果
print(queue_link(n))

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 13:15
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 11:16
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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