61. Rotate List

来源:互联网 发布:江苏电信网络测速 编辑:程序博客网 时间:2024/06/09 21:53

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.

代码

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */public class Solution {    public ListNode rotateRight(ListNode head, int k) {        if(head == null) return head;        ListNode cur = head;        int len = 1;        while(cur.next != null){            len++;            cur = cur.next;        }        cur.next = head;        cur = head;        for(int i = 1; i < len - k % len ; i++){            cur = cur.next;        }        head = cur.next;        cur.next = null;        return head;    }}