1、链表的定义
struct listNode
{
int val;
listNode *next;
};
还可以在定义的时候进行初始化
struct listNode
{
int val;
listNode *next;
listNode(int x) :
val(x), next(NULL) {
}
};
2、往链表末尾添加一个节点,注意第一个参数是指向头指针的指针,因为如果向空链表中插入一个节点,会改变头指针,所以必须把pHead设为指向头指针的指针,不然出了这个函数pHead还是空指针。
void AddToTail1(ListNode ** pHead,int value)
{
ListNode * pNew=new ListNode(value);
pNew->next=NULL;
if(*pHead==NULL)
{
*pHead=pNew;
}
else
{
ListNode * pNode=*pHead;
while(pNode!=NULL)
{
pNode=pNode->next;
}
pNode=pNew;
}
}
3、在链表中找到第一个含有某值的节点并将其删除
4、输出链表元素
void output(ListNode* pHead)
{
if(pHead==NULL)
return;
ListNode* pNode=pHead;
while(pNode)
{
cout<<pNode->val<<" ";
pNode=pNode->next;
}
}
5、 新建一个链表时也需要每次new一个结构体变量,然后将这些节点连接起来
int main()
{
ListNode* pHead=new ListNode(1);
ListNode* pNode1=new ListNode(2);
pHead->next=pNode1;
for(int i=3;i<=6;i++)
{
ListNode* pNode2=new ListNode(i);
pNode1->next=pNode2;
pNode1=pNode2;
}
output(pHead);
return 0;
}
输出:1 2 3 4 5 6