初始:A → B → C → D | 目标:A ← B ← C ← D
public ListNode reverseList(ListNode head) { if (head == null || head.next == null) return head; ListNode newHead = reverseList(head.next); // ① 递归下沉 head.next.next = head; // ② 让后继指回当前节点 head.next = null; // ③ 断开原来的正向指针 return newHead; // ④ 把新头逐层返回}