首页 > 其他 > 详细

Leetcode 61 -- Rotate List

时间:2017-05-08 00:01:04      阅读:242      评论:0      收藏:0      [点我收藏+]

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.

Subscribe to see which companies asked this question.

 
Note: 注意K可能很大,可能会超时。
 
public ListNode rotateRight(ListNode head, int k) {
        if (head == null) {
            return null;
        }
        
        ListNode before = head;
        ListNode after = head;
        
        // get length 
        int length = 0;
        while(after != null) {
            length++;
            after = after.next;
        }
    
        // get valid k less than length
        k = k % length;
        
        after = head;
        for(int i=0; i<k; i++) {
            after = after.next;
        }
        
        while (after.next != null) {
            before = before.next;
            after = after.next;
        }
        
        after.next = head;
        head = before.next;
        before.next = null;
        return head;
    }

 

Leetcode 61 -- Rotate List

原文:http://www.cnblogs.com/linxiong/p/6822762.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!