题解 | #从单向链表中删除指定值的节点#
从单向链表中删除指定值的节点
https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f
import sys class Node(object): def __init__(self, value, next = None ) -> None: self.value = value self.next = next class LinkList: def __init__(self, node) -> None: self.head = node # 根据值 插入节点 def addNode(self, add_value, index_value): cur = self.head nex = None while cur: if cur.value == index_value: nex = cur.next cur.next = Node(add_value) cur.next.next = nex break else: cur = cur.next # 删除节点 def removeNode(self, remove_value): cur = self.head while cur: if cur.next.value == remove_value: # 绝了这里,cur = cur.next.next。卡了十几分 cur.next = cur.next.next break else: cur = cur.next # 遍历链表 def getNode(self): cur = self.head while cur: print(cur.value, end= " ") cur = cur.next if __name__ == "__main__": nums = list(map(int, input().split())) # 操作的值列出来 len_value, head_value, remove_value = nums[0], nums[1], nums[-1] values = nums[2:-1] add_values = values[0::2] index_values = values[1::2] # print(),打断点看一下是否按照所想 # 开始创建节点和链表的对象 head_node = Node(head_value) link = LinkList(head_node) # 遍历添加的值、添加节点到链表 for i in range(0,len_value-1): link.addNode(add_values[i], index_values[i]) # 删除和打印节点 link.removeNode(remove_value) link.getNode()