题目:有一个复杂链表,其结点除了有一个m_pNext指针指向下一个结点外,
还有一个m_pSibling指向链表中的任一结点或者NULL。其结点的C++定义如下:
struct ComplexNode
{
int m_nValue;
ComplexNode* m_pNext;
ComplexNode* m_pSibling;
};
请完成函数ComplexNode* Clone(ComplexNode* pHead),以复制一个复杂链表。
解题思路:建立一个新旧节点指针的表,如map<旧指针,旧指针对应新指针>,在拷贝时,如果旧指针不在map中,new一个并存入map,否则仅拷贝指针。