题解 | #链表内指定区间反转#

链表内指定区间反转

https://www.nowcoder.com/practice/b58434e200a648c589ca2063f1faf58c

        //1.将原链表分为三部分,m之前,m到n直接,n之后,并切断其联系
        //2.将m,n之间链表反转
        //3.将三部分重新连接
//初始化一个空节点,初始赋值为0,指针指向为list
        ListNode dummy = new ListNode(0);
//head=ListNode(1)
        dummy.next = head;
        ListNode pre = dummy;//头结点的前一个
        ListNode start = head;//头结点
        for(int i = 1;i<m;i++){
            pre = start;
            start = start.next;
        }
        //循环n-m次
        for(int i = 0; i<n-m; i++){
            ListNode temp = start.next;//中间值,头结点的下一个
//           start.next 和  pre.next 互换位置 
            start.next = temp.next;
            temp.next = pre.next;
            pre.next = temp;  
        }
        return dummy.next;
    }
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务