leetcode日记(49)旋转链表

其实不难,就是根据k=k%len判断需要旋转的位置,再将后半段接在前半段前面就行。

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) {
        if(head==NULL||k==0) return head;
        ListNode* h=head;
        int len=1;
        while(h->next) {h=h->next;len++;}
        k=k%len;
        if(k==0) return head;
        ListNode* e=head;
        for(int i=0;i<len-k-1;i++) e=e->next;
        ListNode* n=e->next;
        e->next=NULL;
        h->next=head;
        return n;
    }
};
相关推荐
风筝在晴天搁浅36 分钟前
hot100 437.路径总和Ⅲ
算法
sprintzer1 小时前
1.16-1.25力扣排序刷题
算法·leetcode·职场和发展
老鼠只爱大米1 小时前
LeetCode经典算法面试题 #138:随机链表的复制(节点交织法、哈希表法等五种实现方案解析)
算法·leetcode·链表·随机链表复制·节点交织法
TracyCoder1231 小时前
LeetCode Hot100(11/100)——56. 合并区间
算法·leetcode
Hx_Ma161 小时前
Leecode题知识点(25,61,82)
算法·leetcode·链表
青槿吖1 小时前
【趣味图解】线程同步与通讯:从抢奶茶看透synchronized、ReentrantLock和wait/notify
java·开发语言·jvm·算法
2401_838472512 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
点云SLAM2 小时前
似然函数(Likelihood Function)和最大似然估计
算法·机器学习·概率论·数理统计·最大似然估计·似然函数·概率分布
春日见2 小时前
Docker中如何删除镜像
运维·前端·人工智能·驱动开发·算法·docker·容器
郝学胜-神的一滴2 小时前
Python中的with语句与try语句:资源管理的两种哲学
linux·服务器·开发语言·python·程序人生·算法