您的位置:首页 > Web前端

【剑指offer】单链表尾部插入一个节点

2017-06-15 09:50 267 查看
#include <iostream>
using namespace std;

//链表结构体
struct ListNode
{
int m_Value;
ListNode *next;
};

//创建一个单链表
ListNode *CreateList(int *a,int n)
{
ListNode *pHead = NULL;
ListNode *pTemp = NULL;
int i = 0;
for(i = 0; i < n; i++)
{
//ListNode *pNew = (ListNode *)malloc(sizeof(struct ListNode));
ListNode *pNew = new ListNode(); //创建一个新的节点
pNew->m_Value = a[i];
pNew->next = NULL;

if(NULL == pHead)
{
pHead = pNew;
pTemp = pNew;
}
else
{
pTemp->next = pNew;
pTemp = pTemp->next;
}
}
return pHead;
}

//链表尾部插入一个节点
void AddTailNode(ListNode **pHead,int key)
{

// ListNode *pNew = (ListNode *)malloc(sizeof(struct ListNode));
ListNode *pNew = new ListNode();
pNew->m_Value = key;
pNew->next = NULL;

/*if(NULL == pHead)
{
return;
}*/
if(NULL == *pHead)
{
*pHead = pNew;
return;
}

ListNode *p = *pHead;
ListNode *q = NULL;
while(NULL != p)
{
q = p;
p = p->next;
}
q->next = pNew;

}
int main(void)
{
int a[5] = {3,6,8,2,1};
ListNode *p = CreateList(a,5);
//ListNode *p = NULL;
AddTailNode(&p,4);
while(NULL != p)
{
cout<<p->m_Value;
p = p->next;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  单链表
相关文章推荐