@vincewu
My Given solution should do it O(n) with O(1) space .
Here is Code which written in Go. Logic it iterate list and reverse its pair nodes. i.e 1-2-3 -4
iter -0: 2-1-3-4 , iter-1 : 3-2-1-4, iter-3: 4-3-2-1

reverseList(L *list) {
dummy = new(list)
dummy.next = L
cur := L
for( cur != nil && cur.next != nil ) {
tmp := cur.next
next := tmp.next
tmp.next = dummy.next
cur.next = next
dummy.next = tmp
}
cur := dummy.next
for (cur !-nil) {
fmt.Println(cur.val)
}