leetcode Submission Details

代码:

 1 #include<iostream>

 2 #include<vector>

 3 

 4 using namespace std;

 5 

 6  struct ListNode {

 7      int val;

 8      ListNode *next;

 9      ListNode(int x) : val(x), next(NULL) {}

10  };

11 

12 

13  ListNode* rotateRight(ListNode* head, int k) {

14      if (head == NULL)

15          return head;

16      ListNode * p = head;

17      int i = 1;

18      while (p->next != NULL)

19      {

20          p = p->next;

21          i++;

22      }

23      ListNode * tail = p;

24      int L = i;

25      cout << "L = " << L << endl;

26      k = L - k%L;

27      cout << "K = " << k << endl;

28      if (k == L)

29          return head;

30      i = 1;

31      p = head;

32      while (i != k)

33      {

34          p = p->next;

35          i++;

36      }

37      cout << "p ="<<p->val << endl;

38      ListNode *newHead = p->next;

39      p->next = NULL;

40      tail->next = head;

41      return newHead;

42  }

43 

44 

45 

46 

47 int main()

48 {

49     ListNode * head = new ListNode(1);

50     ListNode *p = head;

51     for (int i = 2; i <= 5; i++)

52     {

53         p->next = new ListNode(i);

54         p = p->next;

55     }

56     p = NULL;

57     for (ListNode * temp = head; temp != NULL; temp = temp->next)

58         cout << temp->val << endl;

59     ListNode * newHead = rotateRight(head, 2);

60     cout << "-----------------------------------------" << endl;

61     for (ListNode * temp = newHead; temp != NULL; temp = temp->next)

62         cout << temp->val << endl;

63 }

 

你可能感兴趣的:(LeetCode)