链表反转
1 # -*- coding:utf-8 -*- 2 # class ListNode: 3 # def __init__(self, x): 4 # self.val = x 5 # self.next = None 6 """pHead指针通过其.next属性将原链表上next_指针前移,pre指针指向反转后的片段,并通过pre指针用反转后的片段接到\npHead具有一个新节点的片段上来将新节点从原链表片段打断""" 7 class Solution: 8 # 返回ListNode 9 def ReverseList(self, pHead): #pHead是一个指针(位置),这个指针指向首节点\n的位置,也可以理解为这个指针就是这个节点。这个指针的.next属性就是首节点的.next,也就是指第二个节点。 10 # write code here 11 if pHead is None: #(可以理解为单链表就是这个指针) 12 return pHead 13 next_ = None 14 pre = None 15 while pHead: 16 next_=pHead.next #将第二个节点加上next_指针 17 pHead.next=pre #将第一个通过None值与第二个节点断开,循环时pre是接着反转后的链\n表片段的。 18 pre = pHead #此时PHead依然是第一个节点,将Pre指针指向pHead指针指向的节点 19 pHead = next_ #将pHead指针指向next_指针指向的节点 20 return pre