)
直接上代码class Solution { public ListNode reverseList(ListNode head) { ListNode prev null; ListNode curr head; while (curr ! null) { ListNode next curr.next; curr.next prev; prev curr; curr next; } return prev; } }从头开始以链表1-2-3为例第 1 轮循环curr1next curr.next→ next 2curr.next prev→1.next null链表1 → nullprev curr→ prev 1curr next→ curr 2 现在prev1curr2第 2 轮循环curr2next 32.next 1链表2 → 1 → nullprev 2curr 3 现在prev2curr3第 3 轮循环curr3next null3.next 2链表3 → 2 →1 → nullprev 3curr null循环结束curr null退出 while。 ✅prev 就是新链表的头节点return prev举一反三按照上面1-2-3链表为例无非就这几种情况curr是链表中间某一点时curr是链表头节点时curr是链表尾节点时。分别依照上述操作理解即可