public ListNode ReverseList(ListNode head) { if (head == null || head.next == null){ return head; } ListNode p = head; ListNode q = new ListNode(-1); while (p != null){ ListNode cur = p; p = p.next; cur.next = q.next; q.next = cur; } return q.next; }