LeetCode Rotate List
来源:互联网 发布:ubuntu命令模式字体 编辑:程序博客网 时间:2024/05/18 03:25
Rotate List
Total Accepted: 8291 Total Submissions: 38329My SubmissionsGiven 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改为head。这样的话,得到链表长度能够使计算方便很多。
另一个收获是,多做一些特殊判断能够让代码变得更易懂,经常也更美观。所以,为特殊情况寻找通解或许并不是一个好习惯,而特殊情况特殊处理经常是一个不错的选择。
/** * 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 || head->next == NULL || k == 0) return head; //make a circle and get the length ListNode *cur = head; int len = 1; while (cur->next != NULL) { cur = cur->next; ++len; } cur->next = head; //get the break point i.e. the answer k = k % len; ListNode *tmp = head; for (int i = 0; i < len - k - 1; i++) { tmp = tmp->next; } ListNode *ans = tmp->next; tmp->next = NULL; return ans; }};
0 0
- [leetcode][list] Rotate List
- LeetCode: Rotate List
- LeetCode Rotate List
- LeetCode : Rotate List
- [Leetcode] Rotate List
- [LeetCode] Rotate List
- [leetcode] Rotate List
- leetcode 70: Rotate List
- [Leetcode] Rotate List
- 【leetcode】Rotate List
- [LeetCode]Rotate List
- [leetcode]Rotate List
- LeetCode-Rotate List
- [leetcode] Rotate List
- LeetCode - Rotate List
- LeetCode:Rotate List
- LeetCode 61: Rotate List
- leetcode之Rotate List
- 顺序栈的C语言实现
- HDU 1695 GCD
- 可变参数宏
- Bytebuffer 和DirectByteBuffer
- 随手整理5
- LeetCode Rotate List
- 操作系统面试题
- [codility]GenomicRangeQuery
- java 字节流和字符流
- IOS 7 的tableViewController 整死人了,今天终于弄通了
- C#迷宫的实现(1)
- 计算机网络面试题
- 深入理解计算机系统 2.66
- HDU 1695 GCD