Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- node* get_Mth_from_end(node* head, int m)
- {
- int pos = 0;
- node** node_array = new node*[m + 1];
- node_array[0] = head;
- while (node_array[(pos + 1) % (m + 1)] = node_array[pos % (m + 1)]->next)
- pos++;
- if (pos < m)
- {
- delete[] node_array;
- return NULL;
- }
- pos = pos - m;
- if (pos < 0)
- pos = pos + m + 1;
- node* retval = node_array[pos];
- delete[] node_array;
- return retval;
- }
- int getNumNodesAfter(Node *node){
- if( node->next == NULL ){
- return 0;
- }else{
- return getNumNodesAfter(node->next) + 1;
- }
- }
- for (n=0, front = 0; p[front] != end; ++n, ++p[front]) {
- for (j = 0; j < m; ++j)
- if (n % j = 0)
- ++ front
- front = front % m
- }
- front = (front-1) % m
- for (j = M; j < n-2^m - (n mod 2^m); ++j)
- ++p[front]
- FindNFromEnd(head, n)
- counter = 0;
- first = head
- firstplusn = head
- while (head.next != null)
- counter++
- head = head.next
- if counter == n
- first = firstplusn
- firstplusn = head
- counter = 0
- while counter < n
- counter++
- first = first.next
- return first
- 0 1 2 3 4 5 6 7
- 1 FNH
- 2 FN H
- 3 FN H
- 1 F NH
- 2 F N H
- 3 F N H
- 1 F N H
- 2 F N H
- ---
- 3 [F]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement