反转链表详解

反转链表详解

1.题解

代码如下(示例):


class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode prev = null;
        ListNode curr = head;
        while (curr != null) {
            ListNode nextTemp = curr.next;
            curr.next = prev;
            prev = curr;
            curr = nextTemp;
        }
        return prev;
    }
}

2.图示

未经允许不得使用

3.详解

  • 第一步:定义链表的哑结点(null)和头结点(head).
  • 进行遍历:【遍历终止条件:cur = null】
    1>.nextTemp:指出原来链表序列里的cue.next【要先找出 cur.next,避免转换指向后无法得到】
    2>.转换指向:【调用cur.next转换】
    3>.把prev,cur顺移位置:
    【先移prev的位置,避免cur移动后无法找到】
  • 第三步:返回prev

声明

  • 原作者:ELE(禹祖祖)
  • <未经允许不得转载使用,欢迎大家评论>
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值