`
hcx2013
  • 浏览: 88937 次
社区版块
存档分类
最新评论

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.

 

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
public class Solution {
    public ListNode rotateRight(ListNode head, int k) {
        if (head == null || k == 0) {
        	return head;
        }
        ListNode p = head;
        int len = 1;
        while (p.next != null) {
        	len++;
        	p = p.next;
        }
        p.next = head;
        k = k % len;
        for (int i = 0; i < len - k; i++) {
			p = p.next;
		}
        head = p.next;
        p.next = null;
        return head;
    }
}

 

 

9
9
分享到:
评论

相关推荐

    js-leetcode题解之61-rotate-list.js

    javascript js_leetcode题解之61-rotate-list.js

    Leetcode题目+解析+思路+答案.pdf

    - **Rotate List**:将链表顺时针旋转指定次数。 - **Reorder List**:按照特定规则重新排列链表。 - **Partition List**:将链表按值分割成两个部分。 - **Add Two Numbers**:两个非负整数相加,结果存储在...

    C语言-leetcode题解之61-rotate-list.c

    c语言入门 C语言_leetcode题解之61-rotate-list.c

    LeetCode最全代码

    * [Linked List](https://github.com/kamyu104/LeetCode#linked-list) * [Stack](https://github.com/kamyu104/LeetCode#stack) * [Queue](https://github.com/kamyu104/LeetCode#queue) * [Heap]...

    1、基础算法必练题(含解法)).pdf

    18. **Rotate List**:旋转链表,例如将链表的最后k个节点移动到前面。通过计算链表长度和找到k的相对位置来实现。 19. **Swap Nodes in Pairs**:交换链表中相邻的节点对。可以使用迭代,每次处理一对节点。 20. ...

    leetcode-cpp刷题

    - **2.2.6 Rotate List** - 旋转链表。 - 实现思路:先找到链表尾部并断开,然后连接到头部前面。 - **2.2.7 Remove Nth Node From End of List** - 删除链表倒数第n个节点。 - 实现思路:使用快慢指针,快...

    LeetCode练习答案

    - **旋转链表(Rotate List)**: 给定一个链表和一个整数k,将链表向右旋转k个位置。 - **重排链表(Reorder List)**: 给定一个单链表L,将其重新排列为A-B-A-B形式。 - **划分链表(Partition List)**: 将链表中所有...

    _leetcode-python.pdf

    - Rotate List: 给定一个链表的头节点head,当旋转了k个位置后,返回链表的新头节点。 - Unique Paths / Unique Paths II: 前者计算从矩阵的左上角到右下角的路径数量;后者则考虑了障碍物。 - Minimum Path Sum: 在...

    javalruleetcode-LeetCode:LeetCode算法问题

    RotateList LeetCode 75 Sort Colors LeetCode 125 Valid Palindrome LeetCode 167 Two Sum II - Input array is sorted LeetCode 344 Reverse String LeetCode 345 Reverse Vowels of a String 2 字符串 编号 题目 ...

    LeetCode去除数组重复元素-Arithmetic-Swift:一些算法的swift实现

    Rotate List 最大不同 318. Maximum Product of Word Lengths 【这个题目LTE 复杂度已经降下了】 最长不重复字符串3. Longest Substring Without Repeating Characters ----2016.10.08 移动0到末尾 283. Move Zeroes...

    Project-4-Hunter-College:一种链表实现,使用递归原理允许链表的反转和旋转

    ListNode* rotateList(ListNode* head, int k) { if (head == NULL || head-&gt;next == NULL || k ) return head; int len = 1; ListNode* tail = head; while (tail-&gt;next != NULL) { tail = tail-&gt;next; len++...

    Rotate

    在Android开发中,"Rotate"通常指的是旋转动画,这是一种视图动画(View Animation)的效果,用于改变界面元素的方向或角度。这种动画效果可以增强用户界面的交互性和动态感,比如在加载进度时,一个旋转的指示器能...

    Android单帧动画Rotate旋转

    在res/anim目录下创建一个名为rotate_loading.xml的文件,内容如下: ```xml &lt;animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"&gt; android:drawable="@...

    Android样式的开发:layer-list实例详解

    本文聚焦于`layer-list`这一XML元素,它是Android资源文件中用于创建复杂图形和布局的一种方式,特别是在处理不同屏幕密度时非常实用。`layer-list`允许开发者将多个Drawable对象按层次堆叠,从而实现如背景、边框、...

    tree_left_rotate.rar_Different

    这里的"flist"可能是“file list”的缩写,也可能是一种特定的数据结构。 5. **spl_sqrt_floor.c**: 这个文件可能包含了对浮点数取平方根并向下取整的操作,通常在数学计算或物理模拟中会用到。 6. **spinlock_api...

    四种常用的动画效果Alpha,Scale,Translate,Rotate

    同时,通过`animation-list`可以创建帧动画,适用于简单的动图效果。 总的来说,通过XML配置实现的Android动画机制为开发者提供了丰富的可能性,让应用的交互变得更加丰富多彩。在`myActionAnimation`这个项目中,...

    svg-classlist-polyfill:SVG元素上的Polyfills classList方法(包含,添加,删除和切换)

    SVG classList Polyfill IE11和其他旧版浏览器不支持的SVG元素上的classList方法(包含,添加,删除,切换)的Polyfill。... toggle ( 'icon--rotate' ) icon . classList . remove ( 'icon--blue' ) icon . classList

Global site tag (gtag.js) - Google Analytics