LeetCode 刷题【61. 旋转链表】

61. 旋转链表

自己做

解:截取拼接

cpp 复制代码
/**
 * 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* rotateRight(ListNode* head, int k) {
        ListNode *p = head, *q = head, *r = head;
        int l = 0;                          //链表长

        if(head == nullptr || head->next == nullptr)                 //没有移动空间
            return head;

        while(p != nullptr){                //计算链表长
            p = p -> next;
            l++;
        }
        p = head;                           //归位p

        //调整k
        k %= l;

        if(k == 0)                          //为0则不移动
            return head;

        for(int i = 0; i < k; i++)          //q、r包含k个元素
            r = r->next;

        if(k > 0)
            q = p->next;

        while(r->next != nullptr){        //使r指向尾部
            p = q;
            r = r->next;
            q = q->next;
        }

        p->next = nullptr;
        r->next = head;

        return q;

    }
};
相关推荐
2501_9416233216 小时前
智慧农业监控平台中的多语言语法引擎与实时决策实践
leetcode
轻抚酸~17 小时前
KNN(K近邻算法)-python实现
python·算法·近邻算法
测试界的海飞丝19 小时前
10道软件测试面试题及其答案:
服务器·测试工具·职场和发展
Yue丶越19 小时前
【C语言】字符函数和字符串函数
c语言·开发语言·算法
小白程序员成长日记20 小时前
2025.11.24 力扣每日一题
算法·leetcode·职场和发展
有一个好名字20 小时前
LeetCode跳跃游戏:思路与题解全解析
算法·leetcode·游戏
AndrewHZ21 小时前
【图像处理基石】如何在图像中提取出基本形状,比如圆形,椭圆,方形等等?
图像处理·python·算法·计算机视觉·cv·形状提取
蓝牙先生21 小时前
简易TCP C/S通信
c语言·tcp/ip·算法
2501_9418705621 小时前
Python在高并发微服务数据同步与分布式事务处理中的实践与优化
leetcode
2501_941147711 天前
高并发微服务架构Spring Cloud与Dubbo在互联网优化实践经验分享
leetcode