# 如何在只给定单链表中某个结点的指针的情况下删除该结点
class LNode():
def __init__(self):
self.data = None # 数据域
self.next = None # 指针域
# 输出链表
def PrintList(head):
cur = head.next
while cur!=None:
print(cur.data)
cur = cur.next
# 创建链表
def ConstructList():
head = LNode()
cur = head
i = 1
while i<8:
temp = LNode()
temp.data = i
cur.next = temp
cur = temp
i += 1
return head
# 给定单链表中的某结点,删除此结点
def RemoveNode(head, p):
if p==None or p.next==None:
return False
p.data = p.next.data
p.next = p.next.next
return True
if __name__=="__main__":
# 1.创建链表
head = ConstructList()
# 2.打印链表
PrintList(head)
# 3.删除结点
p = head.next.next.next.next.next # 定义删除的结点
RemoveNode(head, p)
# 4.输出删除后的结点
PrintList(head)