LeetCode 61. Rotate List
来源:互联网 发布:淘宝店名可以修改吗 编辑:程序博客网 时间:2024/06/05 18:05
61. 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次,返回这个链表~
分析:计算出整个链表的长度len,如果要向右循环k次,则新的head指针应该在往右移动len - k % len处。(如果向右移动的距离moveDistance == len,那么直接返回head即可),newhead之前的一个指针的next应为NULL。并且尾部NULL前的tail指针处,tail的next应该为原来的head,最后返回newhead~
/** * 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) return head; int len = 0; ListNode *newhead = head, *tail = head, *p = head; while (p != NULL) { if (p->next == NULL) tail = p; len++; p = p->next; } int moveDistance = len - k % len; if (moveDistance == len) return head; for (int i = 0; i < moveDistance - 1; i++) { newhead = newhead->next; } ListNode *temp = newhead; newhead = newhead->next; temp->next = NULL; tail->next = head; return newhead; }};
0 0
- [LeetCode]61.Rotate List
- LeetCode --- 61. Rotate List
- [Leetcode] 61. Rotate List
- [leetcode] 61.Rotate List
- [leetcode] 61. Rotate List
- leetcode 61. Rotate List
- LeetCode 61. Rotate List
- [leetcode] 61. Rotate List
- 61. Rotate List LeetCode
- leetcode 61. Rotate List
- LeetCode 61. Rotate List
- leetcode 61. Rotate List
- [LeetCode]61. Rotate List
- LeetCode 61. Rotate List
- LeetCode *** 61. Rotate List
- LeetCode 61. Rotate List
- [Leetcode]61. Rotate List
- LeetCode - 61. Rotate List
- [android基础]LayoutInflater的使用
- 二叉搜索树的一些基本操作
- Nginx反向代理、CORS、JSONP等跨域请求解决方法总结
- 160 - 3 Afkayas.2
- 如何用visual studio 2010 新建一个C程序项目
- LeetCode 61. Rotate List
- 完成管理平台的bootstrap界面布局
- git常用操作之查看改动日志和进行版本切换(四)
- 双叉积——拉格朗日公式证明
- 彻底理解javascript的回调函数
- JS的单引号,双引号问题
- 3.3 1!到n!的和
- processing 游戏编程实例
- 给IT同行的健康养生建议