首页 > 其他分享 >【链表】LeetCode 92. 反转链表 II

【链表】LeetCode 92. 反转链表 II

时间:2023-01-03 16:37:57浏览次数:49  
标签:II realHead ListNode head next 链表 rightNode 92

题目链接

92. 反转链表 II

思路

【链表】LeetCode 206. 反转链表的思路一样,只不过需要调整一下realHead头结点的位置,同时原题中的null在本题中为rightNode的下一个结点。

注意: 如果left == 1则说明head结点也需要被反转,此时反转后的首结点为rightNode需要在返回的时候单独判断。

代码

class Solution {
    public ListNode reverseBetween(ListNode head, int left, int right) {

        if(left == right){
            return head;
        }

        ListNode realHead = new ListNode(-1, head);
        for(int i = 1; i < left; i++){
            realHead = realHead.next;
        }

        ListNode rightNode = new ListNode(-1, head);
        for(int i = 0; i < right; i++){
            rightNode = rightNode.next;
        }
        ListNode endNode = rightNode.next;

        ListNode p = realHead.next;
        realHead.next = endNode;
        while(p != endNode){
            ListNode q = p.next;
            p.next = realHead.next;
            realHead.next = p;
            p = q;
        }

        return left == 1 ? rightNode : head;
    }
}

标签:II,realHead,ListNode,head,next,链表,rightNode,92
From: https://www.cnblogs.com/shixuanliu/p/17022591.html

相关文章

  • 【链表】LeetCode 142. 环形链表 II
    题目链接142.环形链表II思路代码classSolution{publicListNodedetectCycle(ListNodehead){if(head==null){returnnull;......
  • 206. 反转链表
    题目链接https://leetcode.cn/problems/reverse-linked-list/description/解题思路按照我们解递归的一般思路,首先确定参数和返回值。从题意可以看出,参数是给定一个链表......
  • 203. 移除链表元素
    题目链接https://leetcode.cn/problems/remove-linked-list-elements/description/解题思路按照我们解决递归的思路,我们首先想,这个递归函数,应该返回什么,应该定义什么参......
  • [oeasy]python0037_字符画艺术_asciiview_自制小动物_imagick_asciiart
    ​ 牛说(cowsay)回忆上次内容我们狂飙了一路从用shell直接执行python程序到用shell循环执行python程序循环体中把python的输出结果用管道交给了......
  • 【链表】LeetCode 141. 环形链表
    题目链接141.环形链表思路设置fast指针和slow指针,分别走两步和一步,如果链表有环的话,那么两个指针一定会在某一时刻相遇。可以想象成速度不同的两个人跑圈,只要时间足够......
  • 【链表】LeetCode 160.相交链表
    题目链接160.相交链表思路1先测量两个链表的长度,记录差值k=abs(n1-n2),然后让短的链表先走k步,这样就能保证剩下的长度是一样的,再同步遍历即可。代码1classSolution......
  • 【链表】LeetCode 876.链表的中间结点
    题目链接876.链表的中间结点思路定义两个指针fast和slow,快的指针一次走两步,慢的指针一次走一步,这样当快的指针走到底的时候,慢指针正好在中间。以下两幅图说明了偶数结......
  • 力扣112 路径的总和II
    力扣112路径的总和II题目:给你二叉树的根节点root和一个表示目标和的整数targetSum。判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标......
  • yii的一些数据库查询方式(一)
    本篇文章会详细介绍and、or、between、in、like在where方法中的使用方法和举例。and​​//我们要查询id大于1并且小于3的数据​​​​$userInfo​​......
  • IP地址、子网掩码、网络号、主机号、网络地址、主机地址以及ip段/数字-如192.168.0.1/
    IP地址、子网掩码、网络号、主机号、网络地址、主机地址以及ip段/数字-如192.168.0.1/24是什么意思?https://huaweicloud.csdn.net/63a56842b878a54545946936.html?spm=10......