// Following is the node structure
/**************
class ListNode{
public:
int data;
ListNode* next;
};
ListNode* newListNode(int data){
ListNode *temp = new ListNode;
temp->data = data;
temp->next = NULL;
return temp;
}
***************/
ListNode* ReverseBlocks(ListNode *head, int blocksize[], int length) {
/*Write your code here.
*Don't write main().
*Don't take input, it is passed as function argument.
*Don't print output.
*Taking input and printing output is handled automatically.
*/
ListNode *curr = head;
ListNode *prev = NULL;
ListNode *next = NULL;
int count = 0;
for(int i = 0;i<length;i++){
while(curr!=NULL && count<blocksize[i]){
next = curr->next;
curr->next = prev;
prev = curr;
curr = next
}
if(next!=NULL){
head->next = ReverseBlocks(next,blocksize[i+1],length);
}
}
head = prev;
return head;
}
Ly8gRm9sbG93aW5nIGlzIHRoZSBub2RlIHN0cnVjdHVyZQovKioqKioqKioqKioqKioKY2xhc3MgTGlzdE5vZGV7CglwdWJsaWM6CglpbnQgZGF0YTsKCUxpc3ROb2RlKiBuZXh0Owp9OwoKTGlzdE5vZGUqIG5ld0xpc3ROb2RlKGludCBkYXRhKXsKCUxpc3ROb2RlICp0ZW1wID0gbmV3IExpc3ROb2RlOwogICAgCXRlbXAtPmRhdGEgPSBkYXRhOwogICAgCXRlbXAtPm5leHQgPSBOVUxMOwogICAgCXJldHVybiB0ZW1wOwp9CioqKioqKioqKioqKioqKi8KCkxpc3ROb2RlKiBSZXZlcnNlQmxvY2tzKExpc3ROb2RlICpoZWFkLCBpbnQgYmxvY2tzaXplW10sIGludCBsZW5ndGgpIHsKCS8qV3JpdGUgeW91ciBjb2RlIGhlcmUuIAoJKkRvbid0IHdyaXRlIG1haW4oKS4KCSpEb24ndCB0YWtlIGlucHV0LCBpdCBpcyBwYXNzZWQgYXMgZnVuY3Rpb24gYXJndW1lbnQuCgkqRG9uJ3QgcHJpbnQgb3V0cHV0LgoJKlRha2luZyBpbnB1dCBhbmQgcHJpbnRpbmcgb3V0cHV0IGlzIGhhbmRsZWQgYXV0b21hdGljYWxseS4KCSovIAogICAgTGlzdE5vZGUgKmN1cnIgPSBoZWFkOwogICAgTGlzdE5vZGUgKnByZXYgPSBOVUxMOwogICAgTGlzdE5vZGUgKm5leHQgPSBOVUxMOwogICAgaW50IGNvdW50ID0gMDsKICAgIGZvcihpbnQgaSA9IDA7aTxsZW5ndGg7aSsrKXsKICAgICAgICB3aGlsZShjdXJyIT1OVUxMICYmIGNvdW50PGJsb2Nrc2l6ZVtpXSl7CiAgICAgICAgICAgIG5leHQgPSBjdXJyLT5uZXh0OwogICAgICAgICAgICBjdXJyLT5uZXh0ID0gcHJldjsKICAgICAgICAgICAgcHJldiA9IGN1cnI7CiAgICAgICAgICAgIGN1cnIgPSBuZXh0CiAgICAgICAgfQogICAgICAgIGlmKG5leHQhPU5VTEwpewogICAgICAgICAgICBoZWFkLT5uZXh0ID0gUmV2ZXJzZUJsb2NrcyhuZXh0LGJsb2Nrc2l6ZVtpKzFdLGxlbmd0aCk7CiAgICAgICAgfQogICAgfQogICAgaGVhZCA9IHByZXY7CiAgICByZXR1cm4gaGVhZDsKfQ==
prog.cpp:17:1: error: ‘ListNode’ does not name a type
ListNode* ReverseBlocks(ListNode *head, int blocksize[], int length) {
^~~~~~~~