LeetCode 061. Rotate List
来源:互联网 发布:chromebook pixel mac 编辑:程序博客网 时间:2024/06/10 18:12
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个节点移到链表开头,其实挺简单的。
但是需要注意一点:当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 || k < 0) return NULL; if(k == 0) return head; ListNode * rear = head; ListNode * fore = head; ListNode * temp; int i = 0; while(i<k) { fore = fore->next; if(!fore) //k的长度大于链表长度 fore = head; i++; } while(fore->next) { fore = fore->next; rear = rear->next; } //此时rear指向待旋转节点的前一个节点 //fore指向最后一个节点 fore->next = head; head = rear->next; rear->next = NULL; return head; }};
因为while循环里面忘了写i++,硬是不知道哪儿出错了,最后在VS里面才调试出来,囧死!
测试代码:
int main(){int num[2]={1,2};struct ListNode *head = new ListNode(0);struct ListNode *temp = head;for(int i=0; i<2; i++){struct ListNode * p = new ListNode(num[i]);temp ->next = p;temp = p;}temp = head;head = head->next;delete temp;cout<<"原始链表:";temp = head;while(temp){cout<<temp->val<<" ";temp = temp->next;}cout<<endl;Solution sol;head = sol.rotateRight(head, 1);cout<<"操作后链表:";while(head){cout<<head->val<<" ";temp = head;head = head->next;delete temp;}cout<<endl;return 0;}
0 0
- LeetCode 061. Rotate List
- [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
- dispatch同步
- XMPP——Smack[3]用户列表,头像,组操作,用户操作
- unity菜鸟之发射子弹打墙
- powerdesigner 破解
- 55分钟了解正则表达式
- LeetCode 061. Rotate List
- Activity状态转换和Activity栈
- 如何安装Oracle WebCenter Suite 11g
- poj2388快排
- 编写Makefile中遇到的各种奇葩问题汇总
- 杭电 2147 kiki's game(睡前一水)
- C#如何把 asp.net webconfig的appSettings分离到单独文件
- 亿万富翁都能这样 你还有什么理由放弃?(震撼几代人)
- sql高级查询