《剑指offer》链表的结点的插入删除
来源:互联网 发布:网络风靡的性感骚彤彤 编辑:程序博客网 时间:2024/06/05 08:06
#include <iostream>#include <stack>using namespace std;struct ListNode{ int value; struct ListNode* next;};void addToTail(ListNode** pHead,int value){ if(pHead == NULL) return; ListNode* pNew = new ListNode;//建立结点 pNew->value = value; pNew->next = NULL; if(*pHead == NULL) { *pHead = pNew; } else { ListNode* p = *pHead; while(p->next != NULL) { p = p->next; } p->next = pNew; }}void removeNode(ListNode**pHead, int value){ if(pHead == NULL || *pHead == NULL) return; //pHead 不合法或者链表为空 ListNode* pToBeDelete = NULL; if((*pHead)->value == value) { pToBeDelete = *pHead; *pHead = NULL; } else { ListNode* pNode = *pHead; //pNode指向结点value的前驱 或者最后一个结点 while(pNode->next != NULL && pNode->next->value != value) { pNode = pNode->next; } if(pNode->next != NULL) //value是链表中的结点 { pToBeDelete = pNode->next; pNode->next = pToBeDelete->next; } } if(pToBeDelete != NULL) { delete pToBeDelete; pToBeDelete = NULL; }}void printNodeReversingly(ListNode* pHead){ stack<ListNode*> nodes; ListNode* pNode = pHead; while(pNode != NULL) { nodes.push(pNode); pNode = pNode->next; } while(!nodes.empty()) { pNode = nodes.top(); nodes.pop(); cout<<pNode->value<<'\t'; } cout<<endl;}int main(){ ListNode* head = NULL; addToTail(&head, 1); addToTail(&head, 2); addToTail(&head, 3); addToTail(&head, 4); printNodeReversingly(head); removeNode(&head,4); removeNode(&head,3); printNodeReversingly(head); printNodeReversingly(NULL); return 0;}
0 0
- 《剑指offer》链表的结点的插入删除
- 剑指offer--面试题18:删除链表的结点
- 剑指offer--删除链表中重复的结点
- 《剑指offer》删除链表中重复的结点
- 剑指offer:删除链表中重复的结点
- [剑指offer]删除链表中重复的结点
- 剑指offer|删除链表中重复的结点
- 《剑指offer》:删除链表中重复的结点
- 剑指Offer:删除链表中重复的结点
- 《剑指offer》-删除链表中重复的结点
- 剑指offer: 删除链表中重复的结点
- 剑指offer 删除链表中重复的结点
- 【剑指offer】删除链表中重复的结点
- 剑指Offer-删除链表中重复的结点
- 剑指offer--删除链表中重复的结点
- 剑指offer-删除链表中重复的结点
- 剑指offer:删除链表中重复的结点
- 剑指offer--删除链表中重复的结点
- 《剑指offer》面试题4(合并数组)
- 黑马程序员--Java异常处理
- 《剑指offer》面试题4(替换空格)
- linux 常用命令
- POJ 2536 Gopher II(二分图最大匹配)
- 《剑指offer》链表的结点的插入删除
- Socket 多线程
- 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问
- Java web之mysql数据源
- 八千里路云和月
- DataTable填充实体类返回泛型集合
- Java生产者消费者
- static 修饰符
- 2011,回家!