反转从位置 m 到 n 的链表

    技术2025-12-27  11

    一、题目

    二、代码 

    /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { private ListNode successor = null; // 后继节点 ListNode reverseBetween(ListNode head, int m, int n) { if (m == 1) { return reverseN(head, n); } head.next = reverseBetween(head.next, m - 1, n - 1); return head; } // 反转以 head 为起点的 n 个节点,返回新的头结点 ListNode reverseN(ListNode head, int n) { if (n == 1) { // 记录第 n + 1 个节点 successor = head.next; return head; } ListNode newHead = reverseN(head.next, n - 1); head.next.next = head; head.next = successor; return newHead; } }

     

    Processed: 0.010, SQL: 9