/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func reverseList(head *ListNode) *ListNode {
if head == nil {
return nil
}
p := head.Next
head.Next = nil
for p != nil {
cur := p
p = p.Next
cur.Next = head
head = cur
}
return head
}