题解 | #从单向链表中删除指定值的节点#
从单向链表中删除指定值的节点
https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f
class Node: def __init__(self, data): self.data = data self.next = None def setNext(self, node): self.next = node class LinkedList: def __init__(self): self.head = None def add(self, data): node = Node(data) if self.head: node.next = self.head self.head = node else: self.head = node def insert_after_value(self, data, value): new_node = Node(data) cur = self.head while cur: if cur.data == value: new_node.setNext(cur.next) cur.next = new_node break else: cur = cur.next def remove(self, data): cur = self.head pre = None while cur: if cur.data == data: if not pre: self.head = None return None else: pre.next = cur.next break else: pre = cur cur = cur.next inp = input().split() n = inp[0] head = inp[1] arr = inp[2:-1] x = inp[-1] new_link = LinkedList() new_link.add(head) for i in range(len(arr)-1): new_link.insert_after_value(arr[i], arr[i+1]) new_link.remove(x) cur = new_link.head while cur: print(cur.data, end=' ') cur = cur.next