剑指offer24(反转链表)

题目

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点

举例

输入:1->2->3->4->5->null
输出:5->4->3->2->1->null

题解

在这里插入图片描述
上图是明怀我根据思路自己手写的一部分关于这道算法题的思路,也就是说,首先,题目是想让我们把反转后链表的头节点给输入出来,那么我们首先就要用ListNode cur=head来定义一个头节点,然后呢,就是有另外的一个tmp指针,来跟随着着这个cur一起移动,好了,话不多说,先附上我的代码:

class Solution{
      public ListNode reverseList(ListNode head){
      ListNode cur=head,pre=null;
      while(cur!=null){
      ListNode tmp=cur.next;//首先是暂时进行后继节点的存放
      cur.next=pre;//这个时候就是进行节点的方向反转,引用指向进行改变
      pre=cur;//这个时候继续往后进行一个遍历,使得pre暂存cur
      cur=tmp;//cur访问下一节点
      }
      return pre;
      }
      }

总结

这道题目呢就是想告诉我们的就是在链表当中,如果想要改变它的指向的话,需要用到的就是两个指针,然后通过暂存和反向指向的方法来进行,这就是我今天对于这道题目的收获,不知道大家对于这道题目有何看法呢,我们下期见吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值