刷题-Leetcode-反转链表前n个节点

反转链表前n个节点

题目链接

来源:力扣(LeetCode)
链接:无
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题目描述

题目分析

反转前n个节点的题目中,原链表的头节点反转后,它的next 要指向 第 n + 1 个节点。也就是说,第n个节点的反转需要特殊处理。
在这里插入图片描述
在这里插入图片描述

class Solution {
    
    
	ListNode tail = null;//记录第n+1个节点
    public ListNode reversePre(ListNode head, int n) {
    
    
        if(n == 1){
    
    
        	tail = head.next;//把第n+1个节点赋给tail
        	return head;
        }
        ListNode last = reverseList(head.next, n - 1);//每进入一层递归,head = head.next,n--
        //反转操作和206相同
        head.next.next = head;
        head.next = tail;//不影响中间节点的反转,但可以让头结点反转变为尾结点后置next域为tail,让反转部分插入原链表中
        return last;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_42771487/article/details/120917162