Middle-题目107:61. Rotate List

原创 2016年05月31日 19:58:17

题目原文:
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位。
题目分析:
先把链表连成环(尾节点连到head上),并统计节点个数count,然后从head开始把第count-k%count个节点拆下来就行了。
源码:(language:c)

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* rotateRight(struct ListNode* head, int k) {
    if(!head || !head->next)
        return head;
    struct ListNode* end;
    int count=1;
    for(end = head; end->next; end = end->next)
        count++;
    end->next = head;
    struct ListNode *p1=head,*p2=head->next;
    for(int i=1;i<count-k%count;i++) {
        p1=p1->next;
        p2=p2->next;
    }
    p1->next = NULL;
    return p2;
}

成绩:
4ms,beats 6.02%,众数4ms,93.98%
cmershen的碎碎念:
本题有一个陷阱在于,如果直接从环上找第k个点是错误的,因为这里的k可能远大于链表长度,而对环来说移动一圈相当于没动,所以取余即可。

版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

Collections类中常用算法之Rotate

Collections类中常用算法之Rotate Collections类中常用算法之Rotate Collections类简介 Rotate方法使用 Rotate方法源码分析 小结Collectio...
  • u014532901
  • u014532901
  • 2016年10月23日 14:26
  • 1373

Leetcode #61. Rotate List 循环位移链表 解题报告

1 解题思想题目的意思是如果有一个链表,现在让你循环向右位移K步,得到一个新的开头的链表,例子可以看原题的实例。首先有一个你要明白的是,向右移动的K步,可能会大于链表的长度N,于是乎你需要这么做:1、...
  • MebiuW
  • MebiuW
  • 2016年05月01日 23:32
  • 1271

Rotate List(链表旋转)

这是一道来自Leetcode的题目,如下所示。其中,K可以大于链表的长度,如果大于链表的长度,则旋转的大小就是 size % K。 思路: 1)遍历链表,求出链表长度size,并得到指向链表末尾结点...
  • Artwoo_GIS
  • Artwoo_GIS
  • 2015年11月02日 22:47
  • 272

右旋单链表 Rotate List

题目:Given a list, rotate the list to the right by k places, where k is non-negative. For example: ...
  • luckyjoy521
  • luckyjoy521
  • 2014年02月18日 22:46
  • 761

神奇的rotate函数

我要给大家介绍一种神奇的rotate或者说数组翻转函数。
  • esir82
  • esir82
  • 2016年08月25日 07:34
  • 779

leetcode 61. Rotate List 向右旋转k个元素 + 链表环遍历

Given a list, rotate the list to the right by k places, where k is non-negative. For example: Give...
  • JackZhang_123
  • JackZhang_123
  • 2017年09月04日 16:10
  • 69

STL实现细节之rotate()

STL中 rotate(first, middle, last) 函数的作用是原地把容器区间 [first, middle)(左半部分) 与 [middle, last) (右半部分)的元素互换。 ...
  • qmickecs
  • qmickecs
  • 2017年04月26日 19:45
  • 778

OpenCV代码提取:rotate函数的实现

OpenCV代码提取:rotate函数的实现
  • fengbingchun
  • fengbingchun
  • 2016年07月16日 12:34
  • 6245

HibernateTemplate 在事务、非事务、配置OpenSessionInViewFilter等不同情况下获取Session

HibernateTemplate在事务、非事务、配置OpenSessionInViewFilter等不同情况获取Session,总结如下: 1、事务在Controller处配置即可,一般情况...
  • lld2002
  • lld2002
  • 2015年01月11日 13:28
  • 534

KVM虚拟机在线迁移环境配置(CentOS 7.0)

简要配置步骤: 在两台服务器上安装CentOS7的系统。 编译使用4.3.0版本内核,注意配置KVM以及虚拟设备驱动等模块。 实现两台主机无密码ssh登录,1)运行:ssh-keygen -t rsa...
  • yu_jinyu
  • yu_jinyu
  • 2016年11月08日 16:18
  • 1014
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Middle-题目107:61. Rotate List
举报原因:
原因补充:

(最多只允许输入30个字)