/**
* 旋转链表leetcode-61
*/
public class RotateRight {
public ListNode rotateRight(ListNode head, int k) {
if (head == null) {
return null;
}
ListNode p = head;
ListNode q = head;
int nodeNum = 1;
while (q.next != null) {
nodeNum++;
q = q.next;
}
q.next = p;
nodeNum = nodeNum % k;
nodeNum = k - nodeNum;
while (nodeNum != 0) {
q = q.next;
nodeNum--;
}
p = q.next;
q.next = null;
return p;
}
}
class ListNode {
int val;
ListNode next;
ListNode() {
}
ListNode(int val) {
this.val = val;
}
ListNode(int val, ListNode next) {
this.val = val;
this.next = next;
}
}
把链表连成环,等效旋转过程。