反转链表「LeetCode」(含有视频讲解)

这篇博客详细介绍了如何反转链表,包括题目分析、关键步骤和代码实现。通过使用三个指针cur、pre和next,逐步将链表节点的指针方向反转,最终得到反转后的链表。提供的JavaScript和Python代码清晰地展示了这一过程。
摘要由CSDN通过智能技术生成

题目链接:反转链表

题目大意:给你一个链表,你得返回这个链表的反转值。

题目图片:

题目分析: 

这道题给了我们一个链表,让我们把这个链表反转过来。

我们先看看原链表:

1->2->3->4->5

是这样对吧?但其实不全是这样

愿链表省略了一部分,就是“5指向哪里呢?”

考虑到这个问题,我们就该重新画一下链表了

1->2->3->4->5->null

最后就是这个状态

那么我们反转之后是什么样子的呢?

5->4->3->2->1->null

这样对吧?

好,题目分析完了,我们来讲讲实现:

这道题的写法很像用到了三个指针:

cur :“指向当前节点”

pre:“指向cur的前一个节点”

next:“指向cur的下一个节点”

每次都用到了这个操作

let next = cur.next;
cur.next = pre;
pre = cur;
cur = next;

也就是每次都把当前指针指向前一个位置,然后再把当先指针移动到下一个位置,同时把前一个指针移到当前位置

好了,思路讲完了。

来看看代码实现:

var reverseList = function(head) {
//    let dummy = new ListNode();
//    dummy.next = head;
//    dummy = null;
   let pre = null;
   let cur = head;
   while(cur){
        let next = cur.next;
        cur.next = pre;
        pre = cur;
        cur = next;
   }
   return pre;
};

还有视频嗷~

视频联合制作@Li_Star

视频链接:​​​​​​反转链表(JavaScript版本)

视频链接:反转链表(Python版本)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值