leetcode 61:Rotate List

原创 2015年11月19日 19:47:11

题目:

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.

思路:

这题可以先确定链表数,然后找到需要截断的结点,将前半部分的最后一个结点next指向NULL,后半部分接到链表的前半部分前面。

注意边界条件:即k有可能大于等于size。

时间复杂度:O(n)

实现如下:

class Solution {
public:
	ListNode* rotateRight(ListNode* head, int k) {
		if (head == NULL) return head;
		int size = 1;
		ListNode *p = head;
		while (p->next)
		{
			size++;
			p = p->next;
		}
		if (size == k) return head;
		k %= size;
		ListNode *q = head;
		for (int i = 0; i < size - k -1; i++) q = q->next;
		p->next = head;
		ListNode *r = q->next;
		q->next = NULL;
		head = r;
		return head;
	}
};



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

【一天一道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 ...

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

链表旋转 LeetCode

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

题目: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(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

这道题目提供了一个很好的思路,在遇到Linked List的问题时,当看似需要我们移动很多node的时候,我们可以直接移动指向头节点的指针,而不是一个一个地去移动node。另外这道题目还有一个隐藏的陷...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode 61:Rotate List
举报原因:
原因补充:

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