反转单链表总结 多种方法图解

本文详细介绍了四种反转单链表的方法:双指针法、头插尾插法、递归法以及一种独特的双指针法。通过具体的步骤解析,帮助读者理解每种方法的实现过程。
摘要由CSDN通过智能技术生成

要求反转一个单链表,例如:
输入:1->2->3->4->5->NULL
输出:5->4->3->2->1->NULL

方法一、双指针

● 定义两个指针:pre和cur,pre在前面,cur在后面。
● 每次让pre的next指向cur,实现一次局部反转。
● 局部反转完成之后,pre和cur同时往前移动一个位置。
● 循环上述过程,直至到达链表尾部。
具体步骤如下所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

class Solution{
   
public:
	ListNode* reverseList(ListNode* head){
   
		if(head == NULL || head->next == NULL)	
			return head;
		ListNode* cur = NULL;
		ListNode* pre = head;
		while(pre != NULL){
   
			ListNode* tmp = pre->next
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值