算法题:复杂链表的复制
来源:互联网 发布:四川省教师网络培训 编辑:程序博客网 时间:2024/05/23 20:02
题目
请实现函数 ComplexListNode* Clone(ComplexListNode* pHead)
,复制一个复杂链表,在复杂链表中,每个结点除了有一个m_pPext
指针指向下一个结点外,还有一个 m_pSibling
指向链表中的任意结点或者 NULL。
结点的 C++ 定义如下:
struct ComplexListNode{ int m_nValue; ComplexListNode* m_pNext; ComplexListNode* m_pSibling;};
代码
思想和书上差不多,自己写的。
ComplexListNode* Clone(ComplexListNode* pHead){ if (pHead == NULL) return NULL; ComplexListNode* pNode = pHead; while (pNode != NULL) { ComplexListNode* pTmp = new(ComplexListNode); pTmp->m_nValue = pNode->m_nValue; pTmp->m_pNext = pNode->m_pNext; pTmp->m_pSibling = NULL; pNode->m_pNext = pTmp; pNode = pTmp->m_pNext; } pNode = pHead; while (pNode != NULL) { ComplexListNode* pTmp = pNode->m_pNext; if (pNode->m_pSibling != NULL) pTmp->m_pSibling = pNode->m_pSibling->m_pNext; pNode = pTmp->m_pNext; } ComplexListNode* pResultHead = pHead->m_pNext; pNode = pHead; while (pNode->m_pNext != NULL) { ComplexListNode* pTmp = pNode->m_pNext; pNode->m_pNext = pTmp->m_pNext; pNode = pTmp; } return pResultHead;}
阅读全文
0 0
- 算法题:复杂链表的复制
- [算法学习]复杂链表的复制
- 算法题35 复杂链表的复制
- 算法题26 复杂链表的复制
- 算法题:复制复杂链表之复制连接法
- 面试算法(二十五)复杂链表的复制
- 剑指Offer___关于复杂链表的复制算法剖析
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- 复杂链表的复制
- GDI对象及其销毁方法
- 学习pr2
- SpringMVC配置返回JSON数据格式
- 话说C++中的左值、纯右值、将亡值
- 很少有人能说清楚listen函数的blacklog的含义, 那就让linux来说说吧!------笔试考过
- 算法题:复杂链表的复制
- poj1469 COURSES【二分图匹配】
- 关于树形权限关系
- 支持向量机(SVM)
- Ubuntu 安装 JDK 7 / JDK8 的两种方式
- UIPickerView控件中自定义显示的字体大小及样式
- 计数DP(Zero Escape,HDU 5389)
- 直接插入排序
- android冷启动优化