首页 > 其他分享 >92. Reverse Linked List II

92. Reverse Linked List II

时间:2024-10-07 08:52:41浏览次数:9  
标签:prev ListNode cur int nullptr List next II 92

92. Reverse Linked List II

在链表头添加一个虚拟源点,可以减少特判

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* reverseBetween(ListNode* head, int left, int right) {
        if(right == left) {
            return head;
        }
        int cnt = 1;
        ListNode* cur = head;
        ListNode* prev = new ListNode(0, head), *next = nullptr, *vir = prev;
        while(cnt < left) {
            cnt++;
            prev = cur;
            cur = cur->next;
        }
        ListNode *L = prev, *L1 = cur;
        while(cnt <= right) {
            cnt++;
            if(cnt == right) {
                L->next = cur->next;
            }
            next = cur->next;
            cur->next = prev;
            prev = cur;
            cur = next;
        }
        if(cur)
            L1->next = cur;
        else 
            L1->next = nullptr;
        return vir->next;
    }
};

标签:prev,ListNode,cur,int,nullptr,List,next,II,92
From: https://www.cnblogs.com/smartljy/p/18449725

相关文章

  • windows服务器IIS服务修改已绑定的网站域名
    要在Windows服务器上的IIS(InternetInformationServices)中修改已绑定的网站域名,可以按照以下步骤操作:打开IIS管理器:打开“开始”菜单,输入“InternetInformationServices(IIS)管理器”,并打开它。或者通过“服务器管理器”中的“工具”菜单打开IIS管理器。......
  • 代码随想录算法训练营day7|● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ●
    学习资料:https://programmercarl.com/0015.三数之和.html#其他语言版本学习记录:454.四数相加(hash_dict,前两个数一组遍历a+b,后两个数一组遍历找0-(a+b))点击查看代码classSolution:deffourSumCount(self,nums1:List[int],nums2:List[int],nums3:List[int],nums4:......
  • 0923人工智能教育技术学
    任务一(1)水印的功能:1.版权保护:水印可以用来标识内容的创建者或所有者,从而防止未经授权的复制或分发。2.身份验证:水印可以用于验证数字内容的真实性和完整性,确保内容在传输过程中没有被篡改。3.广告和推广:水印可以作为一种低成本的广告手段,增加品牌曝光度。4.防止非法使用:即便......
  • 使用yum安装报错:Could not retrieve mirrorlist http://mirrorlist.centos.org/?relea
    安装wget命令yum-yinstallwget报错,无法找到镜像 测试是否是网络问题抓包正常,网络没有问题;尝试更新yum又开始报错尝试分析问题原因出现这个错误是因为使用的CentOS7仓库已经被归档,当前的镜像地址无法找到所需的文件。CentOS7的官方支持已经结束,部分仓库已被移至归档......
  • WPF ListBoxItem Selected and background changed at the same time via ItemContain
    <Window.Resources><Stylex:Key="lbxItemContainerStyle"TargetType="ListBoxItem"><SetterProperty="Template"><Setter.Value><ControlTemplateTargetType=&quo......
  • WPF ListBox IsSynchronizedWithCurrentItem True ScrollIntoView via behavior CallM
    <ListBoxGrid.Column="0"ItemContainerStyle="{StaticResourcelbxItemContainerStyle}"ItemsSource="{BindingBooksCollection,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"IsSynchronizedWith......
  • WPF ListBox IsSynchronizedWithCurrentItem="True"
    //xaml<Windowx:Class="WpfApp13.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mic......
  • 帝国CMS在IIS环境开启TAG伪静态后,中文TAG提示“TAG不存在”的最后解决方法!
    如果你尝试了多种解决方案仍然无法解决帝国CMSTAG伪静态中文提示“TAG不存在”的问题,可以尝试以下方案:解决方案打开 index.php 文件。修改变量获取方式。具体操作步骤打开 index.php 文件:打开 /e/tags/index.php 文件。修改变量获取方式:查找以下代码:......
  • qoj9230 Routing K-Codes 题解
    首先这个图肯定不能有环,也不能有度数大于\(3\)的点。也就是说这是一颗二叉树。我们假设父亲都比儿子小,根节点的值最小。那么假设\(u\)点的值为\(x\),它的儿子的值一定是\(\{2x,2x+1\}\)的子集。会发现\(u\)的子树内的权值和是一个关于\(x\)的一次函数。而且无论两个儿......
  • 10.Java集合框架_List接口
    集合与数组的区别数组:长度开始时必须指定,而且一旦指定,不能修改。保存的必须为同一类型的元素。使用数组进行增加/删除元素比较麻烦。集合:可以动态保存任意多个对象,使用比较方便。提供了一系列方便操作对象的方法:add、remove、set、get。使用集合添加,删除新元素的代......