class Node:
def __init__(self, i):
self.next = None
self.id = i
class Linklist:
def __init__(self):
self.head = None
self.length = 0
def insert_after(self, node):
if not self.head:
self.head = node
else:
tailNode = self.getTailNode()
if tailNode:
self.getTailNode().next = node
else:
self.head = node
self.length += 1
def insert_first(self, node):
if self.head == None:
self.head = node
self.current = node
else:
temp = self.head.next
self.head.next = node
node.next = temp
self.length += 1
def display(self):
self.current = self.head
count = 0
while self.current:
print('我是第{}个结点: dada={}'.format(count, self.current.id))
self.current = self.current.next
count += 1
def getTailNode(self):
current_l = self.head
while current_l.next:
current_l = current_l.next
return current_l
def pop(self):
current = self.head
while current.next:
if current.next.id == self.getTailNode().id:
tmp = current.next
current.next = None
return tmp
current = current.next
self.length -= 1
def getLength(self):
return self.length
def find(self, node):
current = self.head
count = 1
while current.id != node.id:
current = current.next
if not current.next:
return -1
count += 1
print("该节点是第{}个结点".format(count))
return current
def delete(self, node):
if self.getLength() > 0:
if node.id == self.head.id:
if hasattr(self.head.next, 'id') and self.length > 1:
self.head = self.head.next
else:
self.head = None
self.length -= 1
else:
current = self.head
while current:
if current.next.id == self.getTailNode().id == node.id:
current.next = None
return
else:
if current.next.id == node.id:
tmp = current.next
current.next = current.next.next
tmp.next = None
return
current = current.next
self.length -= 1
else:
return -1
link = Linklist()
link.insert_first(Node(0))
link.insert_first(Node(2))
link.delete(Node(0))
link.display()