(剑指offer)24.反转链表
程序员文章站
2022-03-11 17:26:53
...
输入一个链表,反转链表后,输出新链表的表头。
思路:
1.设置两个指针,分别指向当前结点的前preNode后nextNode
2.将当前结点的next指向前一个结点preNode。
3.将当前结点和nextNode都向前移一个(preNode,pHead = pHead,nextNode)
class solition:
def ReverList(self,pHead):
"""
:param pHead:指向头结点
:return:
"""
# preNode 指向当前结点的前一个结点
# nextNode 指向当前结点的后一个结点
preNode = None
while pHead :
nextNode = pHead.next
pHead.next = preNode #当前结点的next指向前一个结点
preNode,pHead = pHead,nextNode # pHead nextNode 向前移一个
return preNode
class ListNode:
def __init__(self,x):
self.val = x
self.next = None
node1 = ListNode(10)
node2 = ListNode(12)
node3 = ListNode(14)
node1.next = node2
node2.next = node3
s = solition()
print(s.ReverList(node1).val)