链表介绍
链表是动态数据结构。
// 在链表的末尾增加一个节点
struct ListNode
{
int m_nValue;
ListNode* m_pNext;
};
// 在链表的末尾增加一个节点
void AddToTail(ListNode** PHead, int value)
{
ListNode pNew = new ListNode();
pNew->m_nValue = value;
pNew->m_pNext = NULL;
if (*pHead == NULL)
{
*pHead = pNew;
}
else
{
ListNode* pNode = *pHead;
while (pNode->m_pNext != NULL) //目的是找最后一个节点
{
pNode = pNode->m_pNext; //变成下一个节点
}
pNode->m_pNext = pNew; //找打了最后一个节点,把最后一个节点指向新加入的节点
}
}
//删除链表中值为value的节点
void RemoveNode(ListNode** pHead, int value)
{
if (pHead == NULL || *pHead == NULL)
{
return;
}
ListNode* pToBeDeleted = NULL;
if ((*pHead)->m_nValue == value)
{
pToBeDeleted = *pHead;
*pHead = (*pHead)->m_pNext;
}
else