博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Rotate List
阅读量:5249 次
发布时间:2019-06-14

本文共 1468 字,大约阅读时间需要 4 分钟。

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.

注意一些边界的处理,找到n-k+1个节点后处理移位。

1 /** 2  * Definition for singly-linked list. 3  * struct ListNode { 4  *     int val; 5  *     ListNode *next; 6  *     ListNode(int x) : val(x), next(NULL) {} 7  * }; 8  */ 9 class Solution {10 public:11     int calListLen(ListNode *node)12     {13         int len = 0;14         while(node)15         {16             len++;17             node = node->next;18         }19         return len;20     }21     22     ListNode *rotateRight(ListNode *head, int k) {23         // Start typing your C/C++ solution below24         // DO NOT write int main() function25         if (head == NULL)26             return NULL;27             28         int len = calListLen(head);29         30         k = k % len;31         32         if (k == 0)33             return head;34         35         ListNode *p = head;36         ListNode *pPre = NULL;37         38         for(int i = 0; i < len - k; i++)39         {40             pPre = p;41             p = p->next;42         }43         44         ListNode *q = p;45         while(q->next)46             q = q->next;47             48         if (pPre)49             pPre->next = NULL;50             51         q->next = head;52         53         return p;        54     }55 };

转载于:https://www.cnblogs.com/chkkch/archive/2012/11/18/2775986.html

你可能感兴趣的文章
P1107 最大整数
查看>>
多进程与多线程的区别
查看>>
Ubuntu(虚拟机)下安装Qt5.5.1
查看>>
java.io.IOException: read failed, socket might closed or timeout, read ret: -1
查看>>
java 常用命令
查看>>
CodeForces Round #545 Div.2
查看>>
卷积中的参数
查看>>
51nod1076 (边双连通)
查看>>
Item 9: Avoid Conversion Operators in Your APIs(Effective C#)
查看>>
学习Spring Boot:(二十八)Spring Security 权限认证
查看>>
深入浅出JavaScript(2)—ECMAScript
查看>>
STEP2——《数据分析:企业的贤内助》重点摘要笔记(六)——数据描述
查看>>
ViewPager的onPageChangeListener里面的一些方法参数:
查看>>
Jenkins关闭、重启,Jenkins服务的启动、停止方法。
查看>>
CF E2 - Array and Segments (Hard version) (线段树)
查看>>
Linux SPI总线和设备驱动架构之四:SPI数据传输的队列化
查看>>
SIGPIPE并产生一个信号处理
查看>>
CentOS
查看>>
Linux pipe函数
查看>>
java equals 小记
查看>>