[PTA] 链表逆置

本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头。链表结点定义如下:

函数接口定义:

其中head是用户传入的链表的头指针;函数reverse将链表head逆置,并返回结果链表的头指针。

裁判测试程序样例:

输入样例:

输出样例:

//这种用图来解释的方式对理解有用吗?如果没有下次就不弄了,说一下呗,谢谢!因为作图真的好麻烦啊!
struct ListNode* reverse(struct ListNode* head)//2
{                                              //3
	struct ListNode* q = head, * t, * p = NULL;//4
	while (q)                                  //5
	{                                          //6
		t = q->next;                           //7
		q->next = p;                           //8
		p = q;                                 //9
		q = t;                                 //10
	}                                          //11
	return p;                                  //12
}                                              //13
/*注:我的思路就是让这个链表的链接方向倒过来,比如:
-> -> ->变成<- <- <-
这样从最右边开始输出变倒过来了至于具体方式我会用下面
的图来说明,希望有帮助,同时也希望得到你的建议*/

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值