leetcode 61. Rotate List
2016-04-15 09:15
225 查看
题意
旋转链表题解
k可能大于链表节点个数n,由于没旋转n次又回到原链表,所以最终只需要旋转k%n次。代码
“`c++class Solution {
public:
ListNode* rotateRight(ListNode* head, int k) {
if(head == NULL)
return NULL;
int n = 0;
ListNode *iter = head;
while(iter)
{
iter = iter->next;
n++;
}
k = k % n;
ListNode *right = head;
int i = 0;
while(right->next && i < k) //right go first by k steps
{
right = right->next;
i++;
}
ListNode *left = head;
while(right->next)
{
right = right->next;
left = left->next;
}
right->next = head;
head = left->next;
left->next = NULL;
return head;
}
};
相关文章推荐
- Python进阶---函数式编程简介
- 快速双边滤波在High-Dynamic Range(HDR)图像显示中的应用。
- 事件分发处理EventBus的使用
- make menuconfig遇到的问题
- 多线程下的其它组件之CountDownLatch、Semaphore、Exchanger
- spark streaming原理与实践
- java 空指针异常(java.lang.NullPointerException)
- 0415 博客评论
- 博客评论
- 10款最受欢迎数据可视化工具
- IE 浏览器证书错误常见问题解答IE 浏览器证书错误常见问题解答
- 机器学习、数据挖掘方面好书、网站推荐
- POJ-1088滑雪,典型的动态规划题,与NYOJ-10skiing一样,但NYOJ上时限是3s,用搜索可以过,但在POJ上就超时了~~
- 自学IT后的第一篇博文
- DB2常用数据类型
- 广告倒计时欢迎界面的实现
- javascript 高级程序设计 十二
- 观看与评价博客
- 三星电脑安装win10win8双系统使用方法
- 常用Keytool 命令