leetcode-Rotate List

来源:互联网 发布:mac怎么下载穿越火线 编辑:程序博客网 时间:2024/06/05 02:27

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.

/** * 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) {        vector<int> a;        ListNode *temp = head;                while(temp)        {            a.push_back(temp->val);            temp = temp->next;        }                int n = a.size();        temp = head;        if(n) k = k%n;        int m = n-k;        while(temp)        {            int j = m%n;            temp->val = a[j];            if(j == n-k-1)break;            m++;            temp = temp->next;        }                return head;    }};


0 0
原创粉丝点击