Leetcode61 Rotate List

Posted xuweimdm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode61 Rotate List相关的知识,希望对你有一定的参考价值。

Rotate List

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.

Solution

  • 利用两个指针定位到需要翻转的地方。
public class Solution 
    public ListNode rotateRight(ListNode head, int k) 
        if(head==null) return head;
        ListNode dummy = new ListNode(-1);
        dummy.next = head;
        ListNode fast = head;
        ListNode slow = head;
        int count;
        for(count=0;fast!=null;fast=fast.next) count++;
        k %= count;
        if(k==0) return head;
        for(fast=head;k-->0;fast = fast.next);
        for(;fast.next!=null;fast=fast.next,slow=slow.next);
        fast.next = dummy.next;
        dummy.next = slow.next;
        slow.next = null;
        return dummy.next;        
    

以上是关于Leetcode61 Rotate List的主要内容,如果未能解决你的问题,请参考以下文章

一天一道LeetCode#61. Rotate List

LeetCode 61. Rotate List

Leetcode61 Rotate List

Leetcode 61 -- Rotate List

leetcode61. Rotate List

LeetCode-61-Rotate List