zoukankan      html  css  js  c++  java
  • 【剑指offer】单链表尾部插入一个节点

    #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;  
    }    
    

      

  • 相关阅读:
    php字符串
    碰撞检测
    javascript倒计时
    日期
    雪花那个飘
    VBS学习笔记(2): Call造成的麻烦
    VBS学习笔记(3): Array和Collection的不同
    NotepadAutomationDemo的代码V2
    VBS学习笔记(1): Set的取舍
    SQL Server之旅:(三)Attach mdf without ldf
  • 原文地址:https://www.cnblogs.com/xqn2017/p/8024441.html
Copyright © 2011-2022 走看看