616263646566676869707172
static ListNode reverseR(ListNode head) { if (head == null || head.next == null) { return head; } ListNode first = head; ListNode rest = head.next; // reverse recursively head = reverseR(rest); // fix the first node after recursion