反转链表(Java 迭代 易于理解!)

反转链表(Java 迭代 易于理解)

迭代法

在这里插入图片描述
废话不多说,直接进入正题。
我们现在想要对上面这个链表进行反转,
变成下面这种形式
在这里插入图片描述
其实这种题思路很明显了,无非就是换一下1,2两个链表节点的指向。

初始状态,cur 负责处理每个节点的指向,pre是cur 要指向的前面那个节点,tmp 我们赋值为cur.next
为什么我们需要tmp 这个变量呢?
根据节点的特性,当我们把 cur.next 指向pre 的时候,我们就找不到 cur 下一个该往哪里走了。
在这里插入图片描述
走完第一轮循环
在这里插入图片描述

   public ListNode reverse(ListNode head) {
        ListNode pre = null,tmp;
        ListNode cur = head;
      
        while (cur != null) {
            tmp = cur.next;
            cur.next = pre;
            pre = cur;
            cur = tmp;
        }
        return pre;
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值