链表节点的增加和删除
来源:互联网 发布:d5600和d7100 知乎 编辑:程序博客网 时间:2024/06/10 03:31
struct ListNode{int m_nValue;ListNode* m_pNext;};//增加节点/*第一个参数是一个指向指针的指针。当我们往一个空链表中插入一个节点时,新插入的节点就是链表的头指针。由于此时会改动头指针,因此必须把pHead参数设为指向指针的指针*/void addToTail(ListNode** pHead, int value){ListNode* pNew = new ListNode();pNew->m_pNext = NULL;pNew->m_nValue = value;if(*pHead == NULL){*pHead = pNew;}else{ListNode* pNode = *pHead;//用临时节点来遍历链表以找出最后一个末尾基点while(pNode->m_pNext)pNode = pNode->m_pNext;pNode->m_pNext = pNew;}}void removeNode(ListNode** pHead, int value){if(*pHead == NULL || pHead == NULL)return;ListNode* pToBeDelete = NULL;//要被删除的节点放入pToBeDeleteif((*pHead)->m_nValue == value)//如果是头结点要被删除{pToBeDelete = *pHead;*pHead = (*pHead)->m_pNext;//改变头结点}else{ListNode* pNode = *pHead;while(pNode->m_pNext != NULL && pNode->m_pNext->m_nValue != value){pNode = pNode->m_pNext;//寻找被删除节点的上一个节点}//找到节点if(pNode->m_pNext != NULL && pNode->m_pNext->m_nValue != value == value){pToBeDelete = pNode->m_pNext;pNode->m_pNext = pNode->m_pNext->m_pNext;//调整节点}}if(pToBeDelete != NULL){delete pToBeDelete;//删除节点}}
0 0
- 链表节点的增加和删除
- 链表节点的增加和删除--20150923
- 链表的创建以及链表节点的增加和删除
- 括链表的创建,增加、删除节点,链表的逆序、排序和销毁
- C语言 链表的创建,以及节点的增加和删除
- hadoop增加和删除节点
- JavaScript动态增加节点和删除节点
- ogs节点的增加,删除,隐藏和开关
- TinyXml 查询指定节点、删除指定节点和增加节点
- TinyXml 查询指定节点、删除指定节点和增加节点
- 链表中的添加节点和删除节点的操作
- Flex增加和删除Tree节点
- hadoop动态增加和删除节点
- hadoop和hbase增加动态删除节点
- JS-案例-增加和删除节点
- fastdfs storage和tracker节点增加删除
- JS对DOM节点的操作--增加节点,删除节点
- 链表----增加删除节点、链表反转、链表合并
- Newtonsoft.Json中的时间格式详解.
- Linux常用命令之-帮助命令
- 配置环境变量(JDK,SDK)
- CC_ASSERT 或 CCAssert宏 断言跟断点差不多-----------cocos2d-x
- PHP连接设备,实现通讯和发送命令
- 链表节点的增加和删除
- HDU 1176 DP 数塔解决
- map的详细用法
- 平衡二叉树(AVL)
- HDU 1085 Holding Bin-Laden Captive!
- python资源 covering
- eclipse 内存不够用报错Internal Error
- poj 2001
- 多线程环境下对变量的读写操作的原子性问题(一道百度笔试题引发的思考)