反转链表的思路和图解

来源于leetcode的206题;

3e69652972ca4a12a0a8900b5e43f79e.png

我是从迭代层次来思考这道题,先定义一个cur表示当前位置的结构体地址,初始为plist(即第一个结构体的地址);next表示cur下一个节点的地址(它可以定义在循环内部,因为它只是为了防止cur->next改变而找不到原来的cur->next,next只是用来暂存其地址,以便循环正常进行);pre表示cur上一个结点的地址,初始为NULL(因为要让头变为尾,第一个节点最终会指向空指针);思路就是让cur遍历链表,先将cur->next暂存到next中,再将cur->next指向上一个结构体的地址,在把pre改变成cur,最后把cur赋值成next让循环正常进行;

我再从图解角度谈谈这道题:

1b31fd4f925349b59247a6ab36347372.png

2bf5e61b39894482a08502a229d6ddf2.png 

6bdb49eec99140e08688d12f3b5d8317.png 

874c6e97e8634c16807b823be2eb1e51.png 

8adf8753f47441b5b0125c9f9e038bc4.png48ce9e0736e047f493ea31cc979ee024.png 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值