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

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))

全部评论

相关推荐

06-07 19:59
门头沟学院 C++
补药卡我啊😭:都快15年前的了还在11新特性
你的简历改到第几版了
点赞 评论 收藏
分享
07-07 14:30
复旦大学 Java
遇到这种人我也不知道说啥了
无能的丈夫:但我觉得这个hr语气没什么问题啊(没有恶意
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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