class ListNode:
def __init__(self, x, next=None):
self.val = x
self.next = next
class Solution:
def reverse(self, head):
last = None
while head:
head.next, last, head = last, head, head.next
return last
root = ListNode(1, ListNode(2, ListNode(3, ListNode(4, ListNode(5, next=None)))))
def pre(root):
while root is not None:
print(root.val, end='->')
root = root.next
print('NULL', end=' ')
pre(root)
print()
s = Solution()
new_root = s.reverse(root)
pre(new_root)
1->2->3->4->5->NULL
5->4->3->2->1->NULL