【剑指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; }
相关文章推荐
- 【剑指offer】链表相关-链表末尾插入一个节点
- 剑指offer--给定一个链表,从尾部到头部打印,输出链表节点的值
- java 剑指offer 第三题:输入一个链表,从尾到头打印链表每个节点的值。
- 牛客网-剑指offer-14-打印一个链表的倒数第k个节点
- 剑指offer__02__输入一个链表,从尾到头打印链表每个节点的值。
- 剑指offer2.3.3链表:在链表末尾添加一个节点
- 剑指offer——两个链表的第一个公共结点(给出的方法,都是针对有且只有一个公共节点的方法)
- 剑指offer 3.4 代码的鲁棒性1- 链表中倒数第K个节点
- 设计一个整型链表类list,能够实现链表节点的插入、删除、以及链表数据的输出操作。
- 剑指Offer :面试题13 在O(1)时间删除链表节点
- 用头插、尾插、按顺序插入创建一个不带头节点的链表
- 向循环有序链表内插入一个节点
- [剑指Offer]链表中的倒数第k个节点
- 链表的基本操作 从头部插入 尾部插入 中间插入 删除节点
- [012]链表笔记--在链表中插入一个节点
- 单向链表中,如何在给定节点前快速插入一个节点?
- 数据结构和算法设计专题之---单链表中在指定的节点前面插入以及删除一个节点
- 建立一个带附加头结点的单链表.实现测长/打印/删除结点/插入结点/逆置/查找中间节点/查找倒数第k个节点/判断是否有环
- 剑指offer 面试题12 在O(1)时间删除链表节点
- 【剑指offer】链表倒数第k个节点