leetcode 061 Rotate List

来源:互联网 发布:mac魅可官网 编辑:程序博客网 时间:2024/05/22 15:17

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


/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* rotateRight(ListNode* head, int k) {        int len = 0;ListNode *l = head;ListNode *ret = NULL;if(head == NULL) return ret;while(l != NULL) {len++;l = l->next;}k = k%len;if(k == 0) return head;int kk = len-k;kk = kk-1;l = head;while(kk--) {l = l->next;}ListNode *next = l->next;l->next = NULL;ret = next;for(; next->next!=NULL; next=next->next);next->next = head;return ret;    }};




0 0
原创粉丝点击