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