首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
旋转链表
[编程题]旋转链表
热度指数:4064
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 256M,其他语言512M
算法知识视频讲解
给定链表的头节点,旋转链表,将链表每个节点往右移动 k 个位置,原链表后 k 个位置的节点则依次移动到链表头。
即,例如链表 : 1->2->3->4->5 k=2 则返回链表 4->5->1->2->3
数据范围:链表中节点数满足
,
示例1
输入
{1,2,3,4,5},2
输出
{4,5,1,2,3}
示例2
输入
{1,2,3},3
输出
{1,2,3}
说明:本题目包含复杂数据结构ListNode,
点此查看相关信息
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(0)
邀请回答
收藏(28)
分享
纠错
提交结果有问题?
1个回答
21篇题解
添加回答
1
C
想去杭州的高级磨洋工在学习
struct
ListNode
*
rotateLinkedList
(
struct
ListNode
*
head
,
int
k
) {
if
(
head
==
NULL
)
{
return
NULL
;
}
struct
ListNode
*
head1
=
head
;
int
len
=
1
;
while
(
head1
->
next
)
{
head1
=
head1
->
next
;
len
++;
}
if
(
len
==
1
)
{
return
head
;
}
k
%=
len
;
head1
->
next
=
head
;
int
n
=
len
-
k
;
struct
ListNode
*
prev
=
NULL
;
while
(
n
)
{
prev
=
head
;
head
=
head
->
next
;
n
--;
}
prev
->
next
=
NULL
;
return
head
;
}
发表于 2024-03-31 22:36:45
回复(1)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
链表
双指针
难度:
1条回答
28收藏
1674浏览
热门推荐
通过挑战的用户
查看代码
牛客43415...
2022-09-25 10:33:22
牛客11456...
2022-09-20 14:24:38
弦翊
2022-09-15 00:06:52
Asphyxiay
2022-09-14 02:09:29
牛客52071...
2022-09-13 23:13:02
相关试题
最小面积子矩阵
动态规划
双指针
前缀和
评论
(44)
和为S的两个数字
数组
数学
双指针
评论
(1508)
来自
“一战通offer”互联...
神奇的数字
排序
双指针
评论
(46)
1.该校教师最多的是哪一年?( ...
资料分析
言语理解与表达
资料分析
评论
(1)
怎么做一个需求
需求分析
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @param k int整型 * @return ListNode类 */ public ListNode rotateLinkedList (ListNode head, int k) { // write code here } }
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @param k int整型 * @return ListNode类 */ ListNode* rotateLinkedList(ListNode* head, int k) { // write code here } };
#coding:utf-8 # class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param head ListNode类 # @param k int整型 # @return ListNode类 # class Solution: def rotateLinkedList(self , head , k ): # write code here
using System; using System.Collections.Generic; /* public class ListNode { public int val; public ListNode next; public ListNode (int x) { val = x; } } */ class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @param k int整型 * @return ListNode类 */ public ListNode rotateLinkedList (ListNode head, int k) { // write code here } }
/* * function ListNode(x){ * this.val = x; * this.next = null; * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @param k int整型 * @return ListNode类 */ function rotateLinkedList( head , k ) { // write code here } module.exports = { rotateLinkedList : rotateLinkedList };
val = $x; } }*/ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @param k int整型 * @return ListNode类 */ function rotateLinkedList( $head , $k ) { // write code here }
# class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param head ListNode类 # @param k int整型 # @return ListNode类 # class Solution: def rotateLinkedList(self , head: ListNode, k: int) -> ListNode: # write code here
package main import "fmt" import . "nc_tools" /* * type ListNode struct{ * Val int * Next *ListNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @param k int整型 * @return ListNode类 */ func rotateLinkedList( head *ListNode , k int ) *ListNode { // write code here }
/** * struct ListNode { * int val; * struct ListNode *next; * }; */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @param k int整型 * @return ListNode类 */ struct ListNode* rotateLinkedList(struct ListNode* head, int k ) { // write code here }
# class ListNode # attr_accessor :val, :next # # def initialize(val = 0, _next = nil) # @val, @next = val, _next # end # end # # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param head ListNode类 # @param k int整型 # @return ListNode类 # class Solution def rotateLinkedList(head, k) # write code here end end
/** * class ListNode(var val: Int) { * var next: ListNode = null * } */ object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @param k int整型 * @return ListNode类 */ def rotateLinkedList(head: ListNode,k: Int): ListNode = { // write code here } }
/** * class ListNode(var `val`: Int) { * var next: ListNode? = null * } */ object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @param k int整型 * @return ListNode类 */ fun rotateLinkedList(head: ListNode?,k: Int): ListNode? { // write code here } }
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @param k int整型 * @return ListNode类 */ public ListNode rotateLinkedList (ListNode head, int k) { // write code here } }
/*class ListNode { * val: number * next: ListNode | null * constructor(val?: number, next?: ListNode | null) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @param k int整型 * @return ListNode类 */ export function rotateLinkedList(head: ListNode, k: number): ListNode { // write code here }
/** * public class ListNode { * public var val: Int * public var next: ListNode? * public init(_ val: Int = 0, _ next: ListNode? = nil) { * self.val = val * self.next = next * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @param k int整型 * @return ListNode类 */ func rotateLinkedList ( _ head: ListNode?, _ k: Int) -> ListNode? { // write code here } }
/** * #[derive(PartialEq, Eq, Debug, Clone)] * pub struct ListNode { * pub val: i32, * pub next: Option
> * } * * impl ListNode { * #[inline] * fn new(val: i32) -> Self { * ListNode { * val: val, * next: None, * } * } * } */ struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @param k int整型 * @return ListNode类 */ pub fn rotateLinkedList(&self, head: Option
>, k: i32) -> Option
> { // write code here } }
{1,2,3,4,5},2
{4,5,1,2,3}
{1,2,3},3
{1,2,3}