61. 旋转链表

给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。

示例 1:

输入: 1->2->3->4->5->NULL, k = 2
输出: 4->5->1->2->3->NULL
解释:
向右旋转 1 步: 5->1->2->3->4->NULL
向右旋转 2 步: 4->5->1->2->3->NULL
示例 2:

输入: 0->1->2->NULL, k = 4
输出: 2->0->1->NULL
解释:
向右旋转 1 步: 2->0->1->NULL
向右旋转 2 步: 1->2->0->NULL
向右旋转 3 步: 0->1->2->NULL
向右旋转 4 步: 2->0->1->NULL

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/rotate-list
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

解法:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode* rotateRight(ListNode* head, int k) {if(head == NULL) return NULL; ListNode *p = head;int len = 0;while(p){++len;p = p->next;}k = k % len;ListNode *fast = head, *slow = head;while(k--)fast = fast->next;while(fast->next){fast = fast->next;slow = slow->next;}fast->next = head;head = slow->next;slow->next = NULL;return head;}
};

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/385244.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1020 月饼 (25 分)

月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。 注意:销售时允许取出一部分库存。样例给出的情形是这样的&#x…

2. 二叉树的深度

题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 /* struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(in…

1021 个位数统计 (15 分

给定一个 k 位整数 1 (0, ,, d​k−1​​>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 0,则有 2 个 0,3 个 1,和 1 个 3。 输入格式: 每个输入包含 1 个测试用例,即一个不超过…

【牛客网】X游戏

题目:X游戏 题目描述 我们称一个数 X 为好数, 如果它的每位数字逐个地被旋转 180 度后,我们仍可以得到一个有效的,且和 X 不同的数。要求每位数字都要被旋转。 如果一个数的每位数字被旋转以后仍然还是一个数字, 则这个数是有效…

1022 D进制的A+B (20 分)

输入两个非负 10 进制整数 A 和 B (≤)&#xff0c;输出 AB 的 D (1)进制数。 输入格式&#xff1a; 输入在一行中依次给出 3 个整数 A、B 和 D。 输出格式&#xff1a; 输出 AB 的 D 进制数。 输入样例&#xff1a; 123 456 8输出样例&#xff1a; 1103 #include<cstdio>…

3. 二进制中1的个数

题目描述 输入一个整数&#xff0c;输出该数二进制表示中1的个数。其中负数用补码表示。 class Solution { public:int NumberOf1(int n) {int count 0; for(int i 0; i < 32; i){if(n & (1 << i))count;}return count;} };

1023 组个最小数 (20 分)

给定数字 0-9 各若干个。你可以以任意顺序排列这些数字&#xff0c;但必须全部使用。目标是使得最后得到的数尽可能小&#xff08;注意 0 不能做首位&#xff09;。例如&#xff1a;给定两个 0&#xff0c;两个 1&#xff0c;三个 5&#xff0c;一个 8&#xff0c;我们得到的最…

C++中重载、重写(覆盖)和隐藏的区别实例分析

1.重载&#xff1a;重载从overload翻译过来&#xff0c;是指同一可访问区内被声明的几个具有不同参数列&#xff08;参数的类型&#xff0c;个数&#xff0c;顺序不同&#xff09;的同名函数&#xff0c;根据参数列表确定调用哪个函数&#xff0c;重载不关心函数返回类型。 示…

1024 科学计数法 (20 分

科学计数法是科学家用来表示很大或很小的数字的一种方便的方法&#xff0c;其满足正则表达式 [-][1-9].[0-9]E[-][0-9]&#xff0c;即数字的整数部分只有 1 位&#xff0c;小数部分至少有 1 位&#xff0c;该数字及其指数部分的正负号即使对正数也必定明确给出。 现以科学计数法…

static、const用法

一、static用法 C的static有两种用法&#xff1a;面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数&#xff0c;不涉及类&#xff1b;后者主要说明static在类中的作用。 一、面向过程设计中的static 1、静态全局变量&#xff1a;在全局变量前…

1025 反转链表 (25 分

给定一个常数 K 以及一个单链表 L&#xff0c;请编写程序将 L 中每 K 个结点反转。例如&#xff1a;给定 L 为 1→2→3→4→5→6&#xff0c;K 为 3&#xff0c;则输出应该为 3→2→1→6→5→4&#xff1b;如果 K 为 4&#xff0c;则输出应该为 4→3→2→1→5→6&#xff0c;即…

1026 程序运行时间 (15 分

要获得一个 C 语言程序的运行时间&#xff0c;常用的方法是调用头文件 time.h&#xff0c;其中提供了 clock() 函数&#xff0c;可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick&#xff0c;即“时钟打点”。同时还有一个常数 CLK_TCK&…

【C++基础】常见面试问题(二)

1. 指针和引用的区别 指针保存的是所指对象的地址&#xff0c;引用是所指对象的别名&#xff0c;指针需要通过解引用间接访问&#xff0c;而引用是直接访问指针可以改变地址&#xff0c;从而改变所指的对象&#xff0c;而引用必须从一而终&#xff1b;引用在定义的时候必须初始…

1028 人口普查 (20 分)

某城镇进行人口普查&#xff0c;得到了全体居民的生日。现请你写个程序&#xff0c;找出镇上最年长和最年轻的人。 这里确保每个输入的日期都是合法的&#xff0c;但不一定是合理的——假设已知镇上没有超过 200 岁的老人&#xff0c;而今天是 2014 年 9 月 6 日&#xff0c;所…

static关键字用法

static修饰局部变量 静态局部变量存储在全局静态区生存期为整个程序生命周期&#xff0c;但是其作用域仍与自动变量相同&#xff0c;只能在定义该变量的函数内使用该变量。退出该函数后&#xff0c;尽管该变量还继续存在&#xff0c;但不能使用它。静态局部变量若在声明时未赋以…

1029 旧键盘 (20 分)

旧键盘上坏了几个键&#xff0c;于是在敲一段文字的时候&#xff0c;对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字&#xff0c;请你列出肯定坏掉的那些键。 输入格式&#xff1a; 输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段…

volatile、const的用法

1. volatile 访问寄存器要比访问内存要块&#xff0c;因此CPU会优先访问该数据在寄存器中的存储结果&#xff0c;但是内存中的数据可能已经发生了改变&#xff0c;而寄存器中还保留着原来的结果。为了避免这种情况的发生将该变量声明为volatile&#xff0c;告诉CPU每次都从内存…

1030 完美数列 (25 分)

给定一个正整数数列&#xff0c;和正整数 p&#xff0c;设这个数列中的最大值是 M&#xff0c;最小值是 m&#xff0c;如果 M≤mp&#xff0c;则称这个数列是完美数列。 现在给定参数 p 和一些正整数&#xff0c;请你从中选择尽可能多的数构成一个完美数列。 输入格式&#xff…

《STL源码剖析常见面试问题》

1. 当vector的内存用完了&#xff0c;它是如何动态扩展内存的&#xff1f;它是怎么释放内存的&#xff1f;用clear可以释放掉内存吗&#xff1f;是不是线程安全的&#xff1f; (1). vector内存用完了&#xff0c;会以当前size大小重新申请2*size的内存&#xff0c;然后把原来…

1034 有理数四则运算 (20 分)

本题要求编写程序&#xff0c;计算 2 个有理数的和、差、积、商。 输入格式&#xff1a; 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数&#xff0c;其中分子和分母全是整型范围内的整数&#xff0c;负号只可能出现在分子前&#xff0c;分母不为 0。 输出格式&…