经典算法题--反转链表
来自Leetcode-206

一个核心思想:将当前节点的next指针指向它的前驱节点。
所以我们需要定义两个指针,一个定义当前节点,另一个定义前一位节点
详情如下:

在第3行,我们定义两个指针分别为cur和prev,分别指向链表中的当前节点和前一位节点
然后我们在第5行执行核心的换位操作
另外需要强调,这一行代码的实现逻辑是,等号右边的值全部都保存了才会一次性赋值给等号左边的变量
这种叫做解压序列(sequence unpacking),是python语言赋值语句的一种技巧方法
其实明白两点就好理解了:
1、节点1 = 节点2 是赋值,即把节点2的data,和指向同时赋值给节点1。同时改变值和next指向。
2、节点.next = *** 是指向,只改变next指向。
这样就很好理解了。

浙公网安备 33010602011771号