leetcode 61. Rotate List

来源:互联网 发布:nginx 默认错误页面 编辑:程序博客网 时间:2024/06/06 03:12

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.
需要两个指针 一个j指向5一个i指向3
所以起始的时候i指向1 j指向3 即走k步

public ListNode rotateRight(ListNode head, int k) {        if(head == null) return null;        ListNode iNode = head;        ListNode jNode = head;        int length;        for(length = 0;iNode != null;length++)            iNode = iNode.next;        iNode = head;        k = k % length;        if(k == 0) return head;        for(int i = 0;i < k ;i++){            if(jNode.next != null)jNode = jNode.next;            else jNode = head;        }        while(jNode.next != null){            iNode = iNode.next;            jNode = jNode.next;        }        jNode.next = head;        head = iNode.next;        iNode.next = null;        return head;    }
0 0