看下面一个链表结点的定义:

struct ComplexListNode
{
int val;
struct ComplexListNode *next;
struct ComplexListNode *sibling; ComplexListNode(int x) : val(x), next(NULL), sibling(NULL){}
};

  这是一个处理带有next指针指向下一个结点的链表结点定义,同时这个结点还随机的指向任一结点作为其兄弟结点。

[NewCoder]复杂链表的复制-LMLPHP

所以要复制这样的链表,并不是很简单的一个工作。下面看一下一个暴力的迭代算法:

04-15 08:56