问题描述:1.生成链表:根据给定的数组元素,生成链表,并返回链表的头结点。
2.链表尾部添加元素:给定一个元素,在链表的尾部添加一个新的元素。
3.移除元素:给定一个元素,删除链表中与之值相等的节点。
4.反序输出链表:从尾到头打印链表元素的值。
注意事项:链表为空(添加);链表仅有一个头结点(删除)。
代码如下:
#include <iostream>
#include<stack>
using namespace std;
struct ListNode
{
int value;
ListNode *pNext;
};
ListNode* createList(int *array, int length)
{
ListNode *p,*q,*pHead;
q=pHead=new ListNode();
if(length==0)
pHead==NULL;
else
{
for(int i=0;i<length;i++)
{
p=new ListNode();
p->value=array[i];
q->pNext=p;
q=p;
//链表的值跟数组中的值顺序相反
}
q->pNext=NULL;
}
return pHead;
}
void AddToTail(List