题解 | #从单向链表中删除指定值的节点#
从单向链表中删除指定值的节点
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()
腾讯成长空间 1100人发布