leetcode61~Rotate List

2024-02-06 03:32
文章标签 list rotate leetcode61

本文主要是介绍leetcode61~Rotate List,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Given a list, rotate the list to the right by k places, where k is non-negative.
For example:
Given 1->2->3->4->5->NULL and k = 2,
return 4->5->1->2->3->NULL.

对链表从右侧k个数进行翻转。
注意:k可以大于链表的长度,需要对链表长度取余

public class RotateList {
public ListNode rotateRight(ListNode head, int k) {
if(head==null || k<1) return head;
int count = 1;
ListNode cur = head;
while(cur.next!=null) {
cur = cur.next;
count++;
}
//此时cur指向最后一个节点
ListNode tail = cur;
//k可以大于链表长度
k = k%count;
if(k==0) return head;
int tmp = count - k;
//cur重新指向头节点
cur = head;
while((–tmp)!=0) {
cur =cur.next;
}
//此时cur指向要翻转节点的前一个节点
tail.next = head;
//对head重新赋值
head = cur.next;
cur.next = null;
return head;
}
}

这篇关于leetcode61~Rotate List的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/683012

相关文章

-bash: /bin/mv: Argument list too long mv

把labels下的所有文件mv到img文件夹下: mv labels/* img/ 报错: -bash: /bin/mv: Argument list too long  mv # Using find ... -exec + find folder2 -name '*.*' -exec mv --target-directory=folder '{}' +   # Using xar

Java零基础-集合:List

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛   今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。   我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初

CSS列表属性:list-style系列属性详解

CSS(层叠样式表)是用于控制网页样式的一种语言,它允许开发者以一种非常灵活的方式来设置网页元素的外观。在CSS中,list-style属性族是专门用来设置列表样式的。列表是网页设计中常见的元素,它们可以是有序列表(<ol>)或无序列表(<ul>)。list-style系列属性允许你自定义列表项前的标记,包括类型、位置和图像。 1. list-style-type list-style-typ

玩转Web之Json(四)---json与(Object/List/Map)的相互转化

在做web应用时,经常需要将json转化成Object/list/map或者将Object/List/map转化成json,通过简单封装可以在写代码是减轻很多负担。本文将给出json转化的一系列方法。 闲话不 多说,直接上代码: 先是Object /List /Map转化为Json /* 功能 :将一个对象转成json数组* 参数 :object对象* retu

【C++11 之新增容器 array、foward_list、tuple、unordered_(multi)map/set】应知应会

C++11 标准中新增了多个容器,这些容器为 C++ 程序员提供了更多的选择,以满足不同的编程需求。以下是对这些新容器的介绍和使用案例: std::array 介绍: std::array 是一个固定大小的数组容器,它在栈上分配内存,并提供了类似于标准库容器的接口。它提供了更好的类型安全性和范围检查,同时保持了与原生数组相似的性能。std::array 的大小必须在编译时确定,并且不能更改。

Initializer_list

1、定义template<class T> class initializer_list2、用途此类型用于访问初始化表中的元素。初始化表是由一系列的const T组成的表。如:auto il = { 10, 20, 30}; // 以逗号分隔,包含在一堆花括号({})内3、如要使用initializer_list,需包含头文件<initializer_list>。 4、初始化表中的

ajax+json+Struts2实现list传递(转载)

一、首先需要下载JSON依赖的jar包。它主要是依赖如下:       json-lib-2.2.2-jdk15       ezmorph-1.0.4       commons-logging-1.0.4       commons-lang-2.4       commons-collections-3.2.1       commons-beanutils      二、

C#中的数组Array和List集合区别

在C#中,数组(Array)和List集合(List<T>)是两种不同的数据结构,它们有一些区别,主要包括以下几点: 固定长度 vs 动态长度: 数组是固定长度的数据结构,一旦创建后,其长度无法改变。 List集合是动态长度的数据结构,可以根据需要动态增加或减少元素。 类型限制: 数组可以存储任意类型的元素,包括值类型和引用类型。 List集合是泛型集合,可以指定存储的元素类型,例如 Li

List集合之元素和对象去重

文章目录 1 List元素去重1.1 移除List中指定某一元素1.1.1 For循环移除1.1.1.1 For移除不彻底问题1.1.1.2 用 i-- 解决问题1.1.1.3 倒序遍历移除元素 1.1.2 ForEach移除1.1.2.1 ConcurrentModificationException异常1.1.2.2 iterator遍历 1.2 移除List中重复元素1.2.1 Fo

[C++ STL] list 详解

标题:[C++ STL] vector 详解 @水墨不写bug  正文开始: 一、背景         C语言阶段,我们如果想要使用链表,需要自己手动实现一个链表。这是非常低效的做法,C++中的STL中提供了链表“ list ”,我们在包含头文件 <list> 后就可以直接使用。 二、容器简介         list是序列容器,允许在序列内的任何位置进行常量时间的