1.找到想插入的节点位置;
2.让新节点的next = 插入节点的next;
3.让插入节点的next指针指向新节点的地址。
#include <stdio.h>
struct Test
{
int data;
struct Test * next;
};
int linknub(struct Test * head)
{
int cnt;
while(head != NULL)
{
cnt ++;
head = head -> next;
}
return cnt;
}
int insert(struct Test * head,int data,struct Test * new)
{
struct Test * p = head;
while(p != NULL)
{
if(p -> data == data)
{
new -> next = p -> next;
p -> next = new;
return 0;
}
p = p -> next;
}
return 0;
}
void printLink(struct Test* head)
{
struct Test * point;
point = head;
while(1)
{
if(point != NULL)
{
printf("%d ",point->data);
point = point -> next;
}else{
break;
}
}
}
int main()
{
struct Test t1 = {1,NULL};
struct Test t2 = {2,NULL};
struct Test t3 = {3,NULL};
t1.next = &t2;
t2.next = &t3;
struct Test t4 = {100,NULL};
printLink(&t1);
int len = linknub(&t1);
printf("%d ",len);
insert(&t1,2,&t4);
printLink(&t1);
return 0;
}