逆转链表 删除链表非尾节点
来源:互联网 发布:运维可以学windows吗 编辑:程序博客网 时间:2024/05/29 16:34
逆转链表 删除链表非尾节点
void deleteNotTailNode(PNode &pHead, PNode pNode){ if (pNode == nullptr || pHead == nullptr) return; if (pNode == pHead) { pHead = pHead->_pNext; delete pNode; } else { Node* pTemp = pNode->_pNext; pNode->_data = pTemp->_data; pNode->_pNext = pTemp->_pNext; delete pTemp; }}
void PrintReverse(PNode pNode){ if (pNode) { PrintReverse(pNode->_pNext); cout << pNode->_data << " "; }}
复制复杂链表
void CloneNode(ListNode *pHead){ ListNode *pNode = pHead; while (pNode != nullptr) { ListNode *pCloned = new ListNode; pCloned->_data = pNode->_data; pCloned->_pNext = pNode->_pNext; pCloned->_pSibling = nullptr; pNode->_pNext = pCloned; pNode = pCloned->_pNext; }}void CloneSibling(ListNode *pHead){ ListNode *pNode = pHead; while (pNode != nullptr) { ListNode *pCloned = pNode->_pNext; if (pNode->_pSibling != nullptr) { pCloned->_pSibling = pNode->_pSibling->_pNext; } pNode = pCloned->_pNext; }}ListNode *DivideList(ListNode *pHead){ ListNode *pNode = pHead; ListNode *pCloneHead = nullptr; ListNode *pCloneNode = nullptr; if (pNode != nullptr) { pCloneHead = pNode->_pNext; pNode->_pNext = pCloneHead->_pNext; pNode->_pNext = pNode->_pNext; } while (pNode != nullptr) { pCloneNode->_pNext = pNode->_pNext; pCloneNode = pCloneNode->_pNext; pNode->_pNext = pCloneNode->_pNext; pNode = pNode->_pNext; } return pCloneHead;}
阅读全文
0 0
- 逆转链表 删除链表非尾节点
- 带头节点链表的操作(链表的创建、删除、查找、逆转、打印等等)
- 链表逆转以及删除所有重复元素
- 删除链表节点
- 删除链表节点
- 删除链表节点
- 删除链表节点
- 链表删除节点
- 逆转链表
- 单向链表逆转
- 链表的逆转
- 逆转单向链表
- 关于逆转链表
- 实现链表逆转
- 线性链表逆转
- 逆转链表
- 链表就地逆转
- 链表逆转
- blade模板使用总结1
- ProjectEuler-Problem22-Names scores
- 接口抽象类的区别
- Spring(一)
- ARM板实现触控幻灯片
- 逆转链表 删除链表非尾节点
- io-4-netty-入门程序
- iOS_模拟KVO的底层实现、手动实现KVO(附源码)
- HDU-2112 HDU Today 最短路
- 七日牧函】再说说长老会的好处
- javascript+html实现遮罩层效果
- LR(Logistic Regression)算法详解
- servlet之JDBC操作
- Centos7安装mysql