http://oj.leetcode.com/problems/rotate-list/
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<vector>
#include<string.h>
#include<cstdarg>
#define NUM 5
using namespace std;
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
class Solution {
public:
ListNode *node[NUM];
ListNode *pHead;
void creatList()
{
node[0]=new ListNode(1);
pHead = node[0];
ListNode *p = node[0];
for(int i=1;i<NUM;i++)
{
node[i]=new ListNode(i+1);
p->next=node[i];
p = node[i];
}
}
void printL()
{
ListNode *p =NULL;
int i;
for(i=0,p=pHead;(p!=NULL)&&(i<NUM-1);p=p->next,i++)
{
cout << p->val << "->";
}
cout<<p->val;//这里打印cout >>endl就出错。
printf("\n");
}
ListNode *rotateRight( int k)
{
int listLen;
int i=0;
//从倒数第k数截断链表
for(;i<NUM-k;i++){}
pHead=node[i];
node[i-1]->next=NULL;
//重组链表
node[NUM-1]->next=node[0];
return pHead;
}
};
int main()
{
Solution rotate;
rotate.creatList();
rotate.printL();
rotate.rotateRight(2);
rotate.printL();
return 0;
}