Loading...

链表内指定区间反转

阅读 ...

在这里插入图片描述

代码求解

reverseN函数是实现将链表的前n个节点进行反转。

和反转整个链表不同,reverseN是要让反转之后的head节点和后面的节点连接起来,而不是指向null。

因此,head.next需要指向successor。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
    ListNode successor = null;
    public 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;
    }
    public ListNode reverseN(ListNode head,int n){
        if(n==1){
            successor = head.next;
            return head;
        }
        ListNode last = reverseN(head.next,n-1);
        head.next.next = head;
        head.next = successor;
        return last;
    }
本文由 iamxurulin 原创发布,转载请保留原文链接。
最后更新于 2026-08-23 17:21:42
关于作者与文章

本文为 iamxurulin 原创技术文章。如对内容有疑问或建议,欢迎在评论区交流讨论。

Coder_Studio - 记录后端开发、算法与 AI 的成长之路