OJ-----反转链表

本文介绍了在解决力扣OJ中的反转链表问题时,新空间法和三指针法两种不同的解题思路,强调了链表中指针的重要性。作者分享了学习过程中的体会,鼓励在遇到类似问题时运用链表指针概念来解决。
摘要由CSDN通过智能技术生成

今天开更每日OJ栏目,主要是总结OJ题中的思路技巧,希望可以养成一种习惯,也希望也可以帮助到大家。

那么第一个题——取自力扣“反转链表”。

这一题有很多思路,我觉得也可以加深对链表本质的理解。

思路1     新空间法

这种思路我的理解是:适用于那种要对链表进行改变重组的题。

即相对于题目给的链表,我们可以新开辟一些空间(链表),然后将原链表中的节点按题目要求复制迁移到新链表中。

针对于这题我们可以新开辟一个链表,将原链表中的第一个节点取下做新链表的头,然后遍历原链表,将节点一个一个头插到新链表中,然后返回新链表的地址。

思路2   三指针法

思路1的方法我觉得比较普适,但这里我们可以发现题目对于新链表的要求比较特殊,那就是新链表的节点相对位置不变,只要求“反转”。

注意这个反转,反转意味着方向,而单链表中决定方向性的就是那个指向下一个节点的next指针,不难想到如果我们将链表的指针反转,即将指向反转问题就迎刃而解了,因此我们可以设计三个指针 n1、n2、n3,让n1指向NULL,n2指向原链表的第一的节点,n2指向原链表的第二个节点 ,遍历原链表进行下述操作,当 n2为空时循环停止,返回n1的值即可。当然要注意n3为空指针的情况。

这题并不是很难,但当时我初学链表时做这题时还是让我对链表的理解更深了,即链表是通过一个指针连接而成,而就是这个指针决定头尾和方向,以后学习过程中遇到与指向有关的问题时就可以试试这种思路,如果大家还有其他方法,欢迎评论区分享。

  • 29
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值