[leetcode] 【链表】 61. Rotate List

原创 2016年06月01日 16:06:47

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个节点翻转到链表头,比如1->2->3->4->5->NULL and k = 2,
4->5反转到了开头得到4->5->1->2->3->NULL.

题解

先遍历一遍算出长度len,然后k的值有可能大于len,所以k=k%len;
然后把链表头尾相连,走len-k步,断开,即为要求的链表。
代码:
/**
 * 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||k==0) return head;
        ListNode *p=head;
        int len=0;
        while(p!=NULL)
        {
            len++;
            if(p->next==NULL)
                break;
            else p=p->next;
        }
        k=k%len;
        p->next=head;
        for(int i=0;i<len-k;i++)
            p=p->next;
        head=p->next;
        p->next=NULL;
        return head;
        
    }
};



版权声明:本文为博主原创文章,未经博主允许不得转载。

leetCode 61.Rotate List (旋转链表) 解题思路和方法

Rotate List  Given a list, rotate the list to the right by k places, where k is non-negative. ...

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

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

leetcode解题61. Rotate List java版(旋转链表)

leetcode解题61. Rotate List java版(旋转链表)

链表系列-把链表向右旋转k个位置LeetCode#61. Rotate List

链表旋转 LeetCode

【一天一道LeetCode】#61. Rotate List

一天一道LeetCode系列(一)题目 Given a list, rotate the list to the right by k places, where k is non-negativ...

Leetcode 61. Rotate List

Given a list, rotate the list to the right by k places, where k is non-negative.For example: Given ...

( Leetcode 61 ) Rotate List

题目:Rotate List Given a list, rotate the list to the right by k places, where k is non-negative....

LeetCode 61. Rotate List(Python详解及实现)

【题目】 Given a list, rotate the list to the rightby k places, where k is non-negative.   For exampl...

LeetCode题解-61-Rotate List

原题 感觉这题没有交代清楚细节,解释一下。本题是将最后K个节点移动到头部,其中k如果大于链表的长度的话,k要根据链表的长度取余再做变化。例如,示例中链表长度为5,那么当k=7的时候,K = ...

Leetcode——61. Rotate List

题目Given a list, rotate the list to the right by k places, where k is non-negative.For example: Give...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[leetcode] 【链表】 61. Rotate List
举报原因:
原因补充:

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