链表反转


关于链表反转,最开始条件反射设临时变量保存,然后一个个反转,但这个思维有点乱。突然脑门中闪过一个主意,所谓反转,不就是把最新的元素放在链表头部么?

假设原始链表是List,新的链表是New,是不是List的元素一个个按顺序取出来,存放到New的头部?New就是反转后的新链表了。

以下是程序代码:

typedef struct Node{
	char data;
	struct Node *next;
}Node_t;

int InsertListNode(Node_t **List,char data)
{
	//Node_t **curr = List;
	Node_t *en = (Node_t *)malloc(sizeof(Node_t));

	if(en == NULL){
		return 1;
	}

	en->data = data;
	en->next = *List;

	*List = en;

	return 0;
}

Node_t * ReverseList(Node_t *List)
{
	Node_t *L = NULL;
	while(List != NULL){
		InsertListNode(&L,List->data);
		List = List->next;	
	}

	return L;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值