题解 | #从单向链表中删除指定值的节点#
从单向链表中删除指定值的节点
https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f
class Node(object): def __init__(self, item): self.item = item self.next = None class singleLinkedList(object): def __init__(self, node=None): self._head = node def is_empty(self): return self._head is None def append(self, item): pass def add(self, item): pass def insert(self, item, dest): """ :param dest: 目标节点 :param item: 值 :return: 无 """ if self.is_empty(): return None else: cur = self._head node = Node(item) while cur: if cur.item == dest : node.next = cur.next cur.next = node return cur = cur.next return None def remove(self, item): """ :param dest: 目标节点 :param item: 值 :return: 无 """ cur = self._head pre = None while cur: if cur.item == item: if cur == self._head: self._head = cur.next else: pre.next = cur.next return pre = cur cur = cur.next def traversal(self): cur = self._head while cur: print(cur.item, end=' ') cur = cur.next if __name__ == "__main__": lst = list(map(int, input().split())) sll = singleLinkedList(Node(lst[1])) for i in range(1, len(lst)//2): sll.insert(lst[i * 2], lst[i * 2 + 1]) sll.remove(lst[-1]) sll.traversal() """ 5 2 3 2 4 3 5 2 1 4 3 """