有一个单向链表,请编写一个函数,将这个单向链表反转,并返回反转后的头节点
'''
'''
class LinkedNode:
def __init__(self, x):
self.val = x
self.next = None
def reverseLinked(header):
if not header or not header.next:
return header
pre = None # 前一个节点
curNode = header # 当前节点
while curNode:
tmp = curNode.next # 临时保存下一个节点
curNode.next = pre # 将前一个节点赋给当前节点的next
pre = curNode
curNode = tmp
return pre
header = LinkedNode(0)
node1 = LinkedNode(1)
header.next = node1
node2 = LinkedNode(2)
node1.next = node2
node3 = LinkedNode(3)
node2.next = node3
def printLinked(header):
p = header
while p:
print(p.val, end=' ')
p = p.next
print()
printLinked(header)
header = reverseLinked(header)
printLinked(header)
0 1 2 3
3 2 1 0
正文完