LeetCode Rotate List

来源:互联网 发布:随身带着淘宝去异界341 编辑:程序博客网 时间:2024/06/05 15:47

题目:

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) {if (head == NULL)return head;ListNode *cur = head;//s为节点个数int s = 1;while (cur->next != NULL) {s++;cur = cur->next;}ListNode *tail = cur;k = (s-k%s)%s;if (k == 0)return head;cur = head;int a = 1;while (a < k) {cur = cur->next;a++;}ListNode *head2 = cur->next;cur->next = NULL;tail->next = head;return head2;}};


0 0
原创粉丝点击