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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.