解题思路:注意反转时出现断裂现象,定义3个指针,分别指向当前遍历到的节点pNode、它的前一个节点pPrev及后一个节点pNext。
# 定义结点
class LNode:
def __init__(self):
self.data = None
self.next = None
class Solution:
# 创建链表
def Create_Node(self):
head = LNode()
tmp = head
i = 1
while i<=8:
temp = LNode()
temp.data = i
tmp.next = temp
tmp = temp
i += 1
return head
# 输出链表
def Print_Link(self, head):
temp = head.next
while temp!=None:
print(temp.data)
temp = temp.next
# 反转链表
def Reverse_Link(self, head):
pReverse_Node = None
pNode = head
pPre = None
while pNode:
pNext = pNode.next
if not pNext:
pReverse_Node = pNode
pNode.next = pPre
pPre = pNode
pNode = pNext
if __name__=="__main__":
solution = Solution()
head = solution.Create_Node()
solution.Print_Link(head)
print("-----------------------------")
solution.Reverse_Link(head)