Given a linked list structure where every node represents a linked list and contains two pointers of its type: (i) pointer to next node in the main list. (ii) pointer to a linked list where this node is head.
Write a C function to flatten the list into a single linked list. Eg. If the given linked list is 1 -- 5 -- 7 -- 10 | | | 2 6 8 | | 3 9 | 4 then convert it to 1 - 2 - 3 - 4 - 5 - 6 - 9 - 7 - 8 -10 My solution - not tested : struct node { int data; struct node *fwd; //pointer to next node in the main list. struct node *down; //pointer to a linked list where this node is head. }*head,*temp,*temp2; temp=head; while(temp->fwd!=NULL) { temp2=temp->fwd; while(temp->down!=NULL) { temp=temp->down; } temp->down=temp2; temp->fwd=NULL; temp=temp2; } plz notify me if anything...other solutions and optimizations are welcome -- Regards, $iva -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algoge...@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.