经典算法题--反转链表

来自Leetcode-206

 

 一个核心思想:将当前节点的next指针指向它的前驱节点。

所以我们需要定义两个指针,一个定义当前节点,另一个定义前一位节点

详情如下:

 

 

在第3行,我们定义两个指针分别为cur和prev,分别指向链表中的当前节点和前一位节点

然后我们在第5行执行核心的换位操作

另外需要强调,这一行代码的实现逻辑是,等号右边的值全部都保存了才会一次性赋值给等号左边的变量

这种叫做解压序列(sequence unpacking),是python语言赋值语句的一种技巧方法

 

其实明白两点就好理解了:
1、节点1 = 节点2 是赋值,即把节点2的data,和指向同时赋值给节点1。同时改变值和next指向。
2、节点.next = *** 是指向,只改变next指向。
这样就很好理解了。

posted @ 2020-12-26 18:09  大西young  阅读(91)  评论(0编辑  收藏  举报