Example #1
0
int main(int argc, char* argv[])
{
    assert(argc == 3 && "Please input 'length of array' and 'max valur' in argv");

    srand(time(NULL));
    int len=atoi(argv[1]);
    int maxVal=atoi(argv[2]);
    int m=rand()%maxVal+1, n=rand()%maxVal+1;
    if(m>n)
        swap(&m, &n);

    node *head=(node*)malloc(len*sizeof(node));
    assert(head != NULL && "malloc error");

    /* create test case */
    head = createArray(head, len, maxVal);

    printf("Origin list:\n");
    printList(head, len);
    printf("Reverse between %d %d:\n",m,n);
    head = reverseBetween(head, m, n);
    printList(head,len);

    /* release the memory */
    freeList(head);

    return 0;
}
Example #2
0
int main()
{
    List *node;
    List *head;
    List *curNode=NULL;
    int m,n;

    for(int i=0; i<LENGTH; i++) {
        node=(List*)malloc(sizeof(List));
        node->val=i+1;
        node->next=NULL;
        if(curNode==NULL) {
            head=curNode=node;
        } else {
            curNode->next=node;
            curNode=curNode->next;
        }
    }
    print_list(head);
    scanf("%d %d",&m,&n);
    if(1<=m && m<=n && n<=LENGTH) {
        head=reverseBetween(head,m,n);
        print_list(head);
    }
    free(head);
    return 0;
}
int main(){
	
	ListNode* node1 = new ListNode(3);
	ListNode* node2 = new ListNode(5);
	
	node1->next = node2;
	
	ListNode* head = reverseBetween(node1,1,2);
}
int main(){
    int arr[] = {1, 2, 3, 4, 5};
    ListNode* l = create_list(arr,sizeof(arr)/sizeof(arr[0]));
    l = reverseBetween(l,1,5);
    while(l){
        printf("%d ", l->val);
        l = l->next;
    }
    printf("\n");
    return 0;
}
void test_reverseBetween()
{
	{
		int a[] = { 1, 2, 3, 4, 5 };
		ListNode *p1 = createList(a, sizeof(a) / sizeof(a[0]));
		printList(p1);

		ListNode *p = reverseBetween(p1, 2, 4);
		printList(p);
		printf("-----------------------\n");
	}
	{
		int a[] = { 1, 2, 3, 4, 5 };
		ListNode *p1 = createList(a, sizeof(a) / sizeof(a[0]));
		printList(p1);

		ListNode *p = reverseBetween(p1, 3, 4);
		printList(p);
		printf("-----------------------\n");
	}
	{
		int a[] = { 1, 2, 3, 4, 5 };
		ListNode *p1 = createList(a, sizeof(a) / sizeof(a[0]));
		printList(p1);

		ListNode *p = reverseBetween(p1, 1, 5);
		printList(p);
		printf("-----------------------\n");
	}
	{
		int a[] = { 1, 2, 3, 4, 5 };
		ListNode *p1 = createList(a, sizeof(a) / sizeof(a[0]));
		printList(p1);

		ListNode *p = reverseBetween(p1, 1, 3);
		printList(p);
		printf("-----------------------\n");
	}
}
int main()
{
	int n, a, b;
	int arr[N];
	while (~scanf("%d %d %d", &n, &a, &b)) {
		int i;
		for (i = 0; i < n; ++i) {
			scanf("%d", &arr[i]);
		}

		struct ListNode * head = convert_to_list(arr, n);
		print_list(head);
		head = reverseBetween(head, a, b);
		print_list(head);
		free_list(head);
	}
}
 ListNode *reverseKGroup(ListNode *head, int k) {
  ListNode *fakedHead = new ListNode(-1);
  fakedHead->next = head;
  ListNode *idx = fakedHead;
  for(int i = 0; idx != NULL;i++)
  {
      if(i != 0 && i%k == 0)
      {
         idx = idx->next;
         head = reverseBetween(head, i-k+1, i);
         continue;
      }
      idx = idx->next;
  }
  
  return head;
 }
Example #8
0
int main(){
    ListNode *n1 = new ListNode(1);
    ListNode *n2 = new ListNode(2);
    ListNode *n3 = new ListNode(3);
    ListNode *n4 = new ListNode(4);
    ListNode *n5 = new ListNode(5);
    n1->next = n2;
    n2->next = n3;
    n3->next = n4;
    n4->next = n5;
    n5->next = NULL;
    printList(n1);

    n1 = reverseBetween(n1, 2,5);
    printList(n1);

    return 0;
}
int main() {
    int arr[] = {1,2,3,4,5};
    ListNode *head = init_list(arr, 5);
    print_list(reverseBetween(head,1,4));
    return 0;
}
Example #10
0
int main()
{
    ListNode *head = buildTestcase();
    printList(reverseBetween(head,2,2));
    return 0;
}