rotate-list
来源:互联网 发布:网络音响系统布线图 编辑:程序博客网 时间:2024/06/14 06:30
Given a list, rotate the list to the right by k places, where k is non-negative.
For example:
Given1->2->3->4->5->NULLand k =2,
return4->5->1->2->3->NULL.
这个题自己写的在牛客网未通过。。测试例程里给的{1,2},3。应该返回{2,1}??是我理解错题目了?按照我的理解,写的代码在vs里自己用测试例子测了一下应该是对的
代码:
#include <iostream>using namespace std;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 *pNode = head; int len = 0;//计算长度 while (pNode != NULL) { len++; pNode = pNode->next; } int num = len - k; //正数第num个节点 if (num <= 0) return head; pNode = head; ListNode *pre = head; for (int i = 0; i < num; ++i) { pre = pNode; pNode = pNode->next; } ListNode *pHead = pNode; for (int i = 1; i < k; ++i) { pNode = pNode->next; } pNode->next = head; pre->next = NULL; return pHead; }};int main() { Solution S; ListNode *head = new ListNode(1); ListNode *t1 = new ListNode(2); ListNode *t2 = new ListNode(3); ListNode *t3 = new ListNode(4); ListNode *t4 = new ListNode(5); head->next = t1; t1->next = t2; t2->next = t3; t3->next = t4; ListNode * res = S.rotateRight(head, 6); while (res != NULL) { cout << res->val << endl; res = res->next; } system("pause"); return 0;}
阅读全文
0 0
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- rotate-list
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- Rotate List
- 五.scrapy CSVFeedSpider
- 解决移动端文本框被原生键盘弹出后挡住文本框
- [HY000][1366] Incorrect string value: '\xE3\x81\x94\xE6\xB3\xA8...' for column 'content' at row 1
- webuploader 百度上传组件
- js立即执行函数,jqueryReady和Onload执行顺序比较
- rotate-list
- sql server 报表服务迁移
- 想转行设计?先了解这些东西
- eclipse下安装drools控件
- 抽象类和接口 应用场景
- mysql 中null 和空串
- 计算时间差函数
- 解压版tomcat7配置
- boost初识