Learn basic concept of c , c++ and python programming in regularcodes.com

Spread the post

Move middle N node in beginning of linked list

Suppose linked list contain following nodes [ 1, 2, 3, 4, 5, 6, 7, 8 ,9, 10 ]. Our goal is to Move middle N nodes in beginning of linked list.

Test Case

The following cases are follow of this problem.

Case 1 : first and last node are not a part of middle nodes. Example linked list contain 3 nodes [1,2,3]. and there are only one middle [2]. if user are given to move 2 middle node to front of linked list then it is not possible.

Case 2 : if two set of middle node then move first set of front of linked list. example [1,2,3,4,5] if move 2 middle nodes. then possible to sets A [2,3] and B[3,4]. in this case move first set.

root_ptr10987654321

Try it Yourself

View pointers and nodes.

Stack Areamainmove_node (int) ? root(pointer) Heap Areastruct Nodedata (int)= 1next (pointer) struct Nodedata (int)= 2next (pointer) struct Nodedata (int)= 3next (pointer) struct Nodedata (int)= 4next (pointer) struct Nodedata (int)= 5next (pointer) struct Nodedata (int)= 6next (pointer) struct Nodedata (int)= 7next (pointer) struct Nodedata (int)= 8next (pointer) struct Nodedata (int)= 9next (pointer) struct Nodedata (int)= 10next (pointer)= NULL

Try it Yourself

Example 1: Move middle 6 nodes.

root_ptr10987654321View Middle 6 nodes

After move middle 6 nodes.

root_ptr10921876543

Visualize process.

Stack Areamainmove_node (int) =6root(pointer)move_n_nodescount (int) =1helper(pointer)middle_node(pointer)root(pointer)size (int) =0temp(pointer) Heap Areastruct Nodedata (int)= 1next (pointer) struct Nodedata (int)= 2next (pointer) struct Nodedata (int)= 3next (pointer) struct Nodedata (int)= 4next (pointer) struct Nodedata (int)= 5next (pointer) struct Nodedata (int)= 6next (pointer) struct Nodedata (int)= 7next (pointer) struct Nodedata (int)= 8next (pointer) struct Nodedata (int)= 9next (pointer) struct Nodedata (int)= 10next (pointer)= NULL

Try it Yourself

C program to Move Middle N nodes at front of linked list . Iterative approach.


Output

Spread the post

Recommended Posts: