剑指Offer 单向链表实现
2020-06-29 04:57
776 查看
单向链表实现
- 单向链表节点结构体
#pragma once struct ListNode { int m_nValue; ListNode * m_pNext; };
- 单向链表函数功能实现
#include "List.h" #include <exception> #include<iostream> using namespace std; ListNode * CreateListNode(int value) { ListNode*newNode = new ListNode(); newNode->m_nValue = value; newNode->m_pNext = nullptr; return newNode; } void ConnectListNode(ListNode*pCurrent, ListNode*pNext) { if (pCurrent == nullptr) throw exception("Invalid Parameter!"); pCurrent->m_pNext = pNext; } void PrintListNode(ListNode*pHead) { if (pHead == nullptr) return; ListNode*pTemp = pHead; while (pTemp!=nullptr) { cout << pTemp->m_nValue << ' '; pTemp = pTemp->m_pNext; } cout << endl; } void AddToTail(ListNode**pHead, int value) { ListNode*newNode = new ListNode(); newNode->m_nValue = value; newNode->m_pNext = nullptr; if (*pHead==nullptr) { *pHead = newNode; return; } else { ListNode*pTemp = *pHead; while (pTemp!=nullptr) pTemp = pTemp->m_pNext; pTemp = newNode; } } void RemoveNode(ListNode**pHead, int value)//删除节点要考虑删除头结点和其他节点的区别 { if (pHead == nullptr || *pHead == nullptr) return; ListNode *pTemp = *pHead; ListNode*pNext = pTemp->m_pNext; if ((*pHead)->m_nValue==value) { *pHead = (*pHead)->m_pNext; delete pTemp; pTemp = nullptr; } while (pNext!=nullptr) { if (pNext->m_nValue==value) { pTemp->m_pNext = pNext->m_pNext; delete pNext; pNext = nullptr; } else { pTemp = pNext; pNext = pNext->m_pNext; } } }
相关文章推荐
- 【数据结构|剑指Offer】单向链表的各项操作实现
- 【剑指offer】反转链表 -- Python 实现
- 【剑指offer——JAVA实现】链表中倒数第k个结点(含思路解答示意图)
- 剑指offer第三十三题【两个链表的第一个公共结点】c++实现
- 剑指Offer 两个链表的第一个公共节点 / LeetCode 160.相交链表(Python实现)
- 【剑指offer】链表中倒数第k个节点 -- Python 实现
- 【剑指offer——JAVA实现】反转链表(含思路解答示意图)
- 剑指offer 01-06解答思路以及代码(顺序数组找特定数字,替换空格字符,链表反转输出,重建二叉树,两个栈实现队列效果,旋转数组最小元素)
- 剑指offer 面试题16 反转链表-Java实现
- 剑指Offer:面试题15——链表中倒数第k个结点(java实现)
- 【剑指offer】从尾到头打印链表 -- Python 实现
- 剑指offer面试题java实现之题5:逆序打印链表
- 剑指offer刷题之c实现的二叉搜索树转换成双向链表
- 【剑指offer——JAVA实现】链表中环的入口结点
- 剑指offer----二叉搜索树与双向链表----java实现
- 剑指offer--面试题16:翻转链表--Java实现
- 剑指offer-从尾到头打印链表 java实现
- 链表中倒数第k个结点[剑指offer]之python实现
- 剑指offer:从尾到头打印链表代码实现
- 剑指offer面试题13扩展------Linus:利用二级指针删除单向链表