题解 | #字符串加密#
从单向链表中删除指定值的节点
http://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f
写链表好费时间...
class Node(object):
def __init__(self, data, next=None):
self.data = data
self.next = next
class LinkedList(object):
def __init__(self, head = None):
self.head = Node(head)
def __len__(self):
#功能:输入头节点,返回链表长度
curr = self.head
counter = 1
while curr.next is not None:
counter += 1
curr = curr.next
return counter
def prints(self):
curr = self.head
while curr is not None:
print(curr.data,end=' ')
curr = curr.next
def insert(self, data, prev):
node = Node(data=data)
curr_node = self.head
while curr_node is not None:
if curr_node.data == prev:
x = curr_node.next
node.next = x
curr_node.next = node
break
curr_node = curr_node.next
return node
def delete(self, data):
node = Node(data=data)
curr_node = self.head
if curr_node.data == data:
curr_node = None
while curr_node.next is not None:
if curr_node.next.data == data:
x = curr_node.next.next
curr_node.next = x
break
curr_node = curr_node.next
return node
while True:
try:
l = list(map(int, input().split()))
nodes, head, dels, inserts = l[0], l[1], l[-1], l[2:-1]
a = LinkedList(head = head)
for i in range(0,len(inserts)-1,2):
a.insert(inserts[i],inserts[i+1])
a.delete(dels)
a.prints()
except:
break
查看9道真题和解析