leetcode61: Rotate List

来源:互联网 发布:全景图拼接算法 编辑:程序博客网 时间:2024/06/06 15:51
要求:

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.

注意:有可能k=0或者k大于链表长度,此时需要k对链表长度取余,思路:现将链表首尾相连,再在合适的位置切断它。

public ListNode rotateRight(ListNode head, int k) {int count = 1;if (head == null || k == 0)return head;ListNode node = head;while (node.next != null) {node = node.next;count++;}node.next = head;k = k % count;head = node.next;for (int i = 1; i <= count - k; i++)node = node.next;head = node.next;node.next = null;return head;}


0 0
原创粉丝点击