大佬教程收集整理的这篇文章主要介绍了简单单链表实现,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这里主要是实现了一个单链表,不带头节点的单链表,使用了二级指针。如果是带头节点的链表,其只要一级指针就可以了。 接下来是一个单链表翻转的函数。
typedef struct ListNode
{
struct ListNode *pNext;
int elem;
}ListNode;
void reverseList(ListNode **L)
{
ListNode *newL = NULL;
ListNode *temp = NULL;
ListNode *pL = NULL;
if((L== NULL) || (*L ==NULL))
{
return;
}
pL = *L;
while(pL != NULL)
{
temp = (ListNode *)malloc(sizeof(ListNode));
temp->elem = pL->elem;
temp->pNext = newL;
newL = temp;
(*L) = pL->pNext;
free(pL);
pL = *L;
}
*L = newL;
}
void addNode(ListNode **L, int elem)
{
ListNode *temp = NULL;
if((L == NULL) )
{
return;
}
temp = (ListNode *)malloc(sizeof(ListNode));
memset(temp, 0, sizeof(ListNode));
temp->elem = elem;
temp->pNext = (*L);
(*L) = temp;
//printf("--%d--n", temp->elem);
}
void printList(ListNode *L)
{
ListNode *p = NULL;
if(L == NULL)
{
return;
}
p = L;
while(p != NULL)
{
printf("%dt", p->elem);
p = p->pNext;
}
printf("n");
}
int main()
{
int a[4]= {1, 2, 3, 4};
int i = 0;
ListNode *L = NULL;
for(i = 0; i < 4; i ++)
{
addNode(&L, a[i]);
}
printList(L);
reverseList(&L);
printList(L);
}
以上是大佬教程为你收集整理的简单单链表实现全部内容,希望文章能够帮你解决简单单链表实现所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。