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
Node *flatten(Node *node) {
if (!node)
return NULL;
Node *head = node;
Node *next = node-next;
node-next = NULL;
if (node-down)
node-next = flatten(node-down);
while (node-next != NULL)
node = node-next;
node-next = flatten(next);
return head;
}
On Wed, Feb 16, 2011 at 8:38 PM, bittu