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

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

https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f

import sys


class ListNode(object):
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next


for line in sys.stdin:
    a = line.split("\n")[0]
    nums = a.split(" ")
    nums = [int(_) for _ in nums]
    sum_count = nums[0]
    head = ListNode(nums[1], None)
    org_head = ListNode()
    org_head.next = head
    new_nums = nums[2:]
    d = {nums[1]: head}
    for i in range(0, len(new_nums)-1, 2):
        #print(i)
        pre = new_nums[i + 1]
        last = new_nums[i]
        if pre in d:
            pre_node = d[pre]
        else:
            pre_node = ListNode(pre)
            d[pre] = pre_node
        if last in d:
            last_node = d[last]
        else:
            last_node = ListNode(last)
            d[last] = last_node
        if pre_node.next:
            temp = pre_node.next
            pre_node.next = last_node
            last_node.next = temp
        else:
            pre_node.next = last_node
    del_num = new_nums[-1]
    del_node = d.get(del_num)
    node = org_head
    #print(d)
    while node:
        if del_node and node.val == del_node.val:
            node = node.next
            continue
        if node != org_head:
            print(node.val, end=" ")
        node = node.next

搞个链表类,然后模拟构建链表即可,需要注意一下那种已经有了next的再中间插入一个node.

全部评论

相关推荐

笑着秋招😊:我一直认为努力有回报是一件很幸福很幸福的事情,恭喜你
点赞 评论 收藏
分享
在看牛客的社畜很积极:身高体重那一行信息去掉,学校那一行的信息放上面,找半天都没找到你是哪个学校什么专业的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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