python 正规单向链表写法,定义节点类,定义链表类
#定义节点类
class list_node():
def __init__(self,value,next_node=None):
self.value = value
self.next_node = next_node
#定义单向链表类
class link_list():
def __init__(self,node):
self.head = node
self.length = 1
def insert(self,next_,current):
node = self.head
temp = list_node(next_)
for i in range(self.length):
if node.value == current:
if node.next_node:
temp.next_node = node.next_node
node.next_node = temp
self.length += 1
break
else:
node = node.next_node
continue
def delete(self,value):
if self.length == 1:
if self.head.value == value:
self.head.value = None
self.length = 0
if self.length > 1:
current = self.head
next_ = current.next_node
if current.value == value:
self.head = next_
self.length -= 1
else:
for i in range(self.length-1):
if next_.value == value:
if next_.next_node:
current.next_node = next_.next_node
next_ = current.next_node
else:
current.next_node = None
self.length -= 1
else:
current = next_
next_ = current.next_node
def print(self):
result = ''
if self.length > 0:
current = self.head
for i in range(self.length):
result = result + str(current.value)+ ' '
current = current.next_node
print(result)
while True:
try:
numbers = list(map(int,input().split()))
#创建头节点
head = list_node(numbers[1])
#用头节点创建一个链表
l_list = link_list(head)
#插入节点
for i in range(2,numbers[0]*2,2):
l_list.insert(numbers[i], numbers[i+1])
#删除节点
l_list.delete(numbers[-1])
#打印链表
l_list.print()
except:
break


京公网安备 11010502036488号