欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LeetCode92 反转链表从m到n

程序员文章站 2022-06-17 18:32:43
...

连接
LeetCode92 反转链表从m到n

头插法

/**
     * 链表头插法
     * @param head
     * @param m
     * @param n
     * @return
     */
    //头插法  100%
    public ListNode reverseBetween(ListNode head, int m, int n){

        ListNode dummyHead = new ListNode(0);
        dummyHead.next = head;

        //将g移动到第一个要反转的节点的前面,将p移动到第一个要反转的节点的位置上
        ListNode g = dummyHead;
        ListNode p = head;

        for(int i=0;i<m-1;i++){
            g=g.next;
            p=p.next;
        }

        //头插法
        for(int i=0;i<n-m;i++){

            //p后面的元素
            ListNode removed = p.next;

            //将p后面的元素删除
            p.next=p.next.next;

            //将删除的元素添加到g的后面
            removed.next=g.next;

            g.next = removed;

        }

        return dummyHead.next;

    }

相关标签: leetcode刷题笔记