看下面一个链表结点的定义:
struct ComplexListNode
{
int val;
struct ComplexListNode *next;
struct ComplexListNode *sibling; ComplexListNode(int x) : val(x), next(NULL), sibling(NULL){}
};
这是一个处理带有next指针指向下一个结点的链表结点定义,同时这个结点还随机的指向任一结点作为其兄弟结点。
所以要复制这样的链表,并不是很简单的一个工作。下面看一下一个暴力的迭代算法: