在链表结尾插入一个结点 以及在 在链表中找到第一个含有某值的结点并删除该结点

 1 #include "stdafx.h"
 2 #include <iostream>
 3 #include <exception>
 4 using namespace std;
 5 
 6 struct ListNode
 7 {
 8     int m_nValue;
 9     ListNode* m_pnext;
10 };
11 
12 void InsertNodeTail(ListNode** L,int num)
13 {
14     ListNode* node = new ListNode();
15     node->m_nValue = num;
16     node->m_pnext = NULL;
17     if(*L == NULL)
18     {
19         *L = node;
20     }
21     else
22     {
23         ListNode *pHead=*L;
24         while(pHead->m_pnext!=NULL)
25             pHead=pHead->m_pnext;
26         pHead->m_pnext = node;
27     }
28 }
29 
30 void RemoveNode(ListNode** pHead,int value)
31 {
32     if(pHead ==NULL||*pHead ==NULL)
33         return;
34     ListNode* pToBeDeleted = NULL;
35     if((*pHead)->m_nValue == value)
36     {
37         pToBeDeleted = *pHead;
38         *pHead = (*pHead)->m_pnext;
39     }
40     else
41     {
42         ListNode* pNode = *pHead;
43         while(pNode->m_pnext != NULL && pNode->m_pnext->m_nValue!=value)
44             pNode = pNode ->m_pnext;
45         if(pNode->m_pnext != NULL && pNode ->m_pnext->m_nValue ==value)
46         {
47             pToBeDeleted = pNode->m_pnext;
48             pNode->m_pnext = pNode->m_pnext->m_pnext;
49         }
50     }
51     if(pToBeDeleted!=NULL){
52         delete pToBeDeleted;
53         pToBeDeleted = NULL;
54     }
55 
56 }
57 int _tmain(int argc, _TCHAR* argv[])
58 { 
59 
60     return 0 ;
61 }
原文地址:https://www.cnblogs.com/crazycodehzp/p/3556787.html