Algorithm 4_C language: Invert the dynamic singly linked list L.

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct LNode {
	int elem;
	struct LNode* next;
}LNode, *linklist;
void LNode_create(linklist& L,int N)//创建链表
{
	int n;
	linklist Lhead, Lend;
	Lhead = NULL;
	Lend = NULL;
	printf("请输入该数组\n");
	for (int i = 0; i < N; i++)
	{
		scanf_s("%d", &n);
		L = (linklist)malloc(sizeof(LNode));
		L->elem = n;
		L->next = NULL;
		if (Lhead == NULL)
		{
			Lhead = L;
			Lend = L;
		}
		else
		{
			Lend->next = L;
			Lend = L;
		}
	}
	L = Lhead;
}
void  Reverse_L(linklist& L,int N)//逆置链表
{
	int i, j,t;
	linklist p;
	p = L;
	for (i = 0; i < N-1; i++)
	{
		for (j = 0; j < N - 1 - i; j++)
		{
			t = p->elem;
			p->elem = p->next->elem;
			p->next->elem = t;
			p = p->next;
		}
		p = L;
	}
}
void display(linklist L)//输出链表
{
	while (L)
	{
		printf("%d ", L->elem);
		L = L->next;
	}
}
int main()
{
	int N;
	linklist L;
	printf("请输入你要输入数组的元素个数;\n");
	scanf_s("%d", &N);
	LNode_create(L,N);
	Reverse_L(L,N);
    display(L);
	return 0;
}

Guess you like

Origin blog.csdn.net/qq_51224492/article/details/110559555