【编程】为什么不能直接对链表头head进行操作?

【编程】为什么不能直接对链表头head进行操作?

比如我们有一个链表如下: 此时 head 就是 1 这个位置,但是链表是连着的,输出 head 你会得到一整串以 1 为起点的链子,也就是[1, 2, 3],head.next 会输出 [2, 3]

假设现在我们有一个未知长度的链表,想要计算其长度怎么办呢? 可以令 head = head.next 直到 head is None,期间进行计数就好啦

n = 0

while head:

n += 1

head = head.next

此时,输出的 n 就是链表的长度,但是 head 变成了 [] ,也就是说我们无法在输出整个链表的信息了。

所以,在对链表进行操作时,一般会 tmp = head ,对 tmp 一番操作之后,并不影响 head 的位置,整个链表也没有变化(如果你不改变的话),代码如下:

n = 0

tmp = head

while tmp:

n += 1

tmp = tmp.next

最后,想不明白的话强烈建议画个图,会好理解很多。另外,head 只是一个位置,位置。

猜你喜欢:👇🏻 ⭐【编程】位运算(异或) ⭐【编程】二叉搜索树的定义 ⭐【编程】位(bit)、字节(byte)和字(word)的区别

相关推荐

淘宝客能赚多少钱?如何成为淘宝客?
365体育封号怎么办

淘宝客能赚多少钱?如何成为淘宝客?

📅 06-27 👁️ 3101
牙套一般要带多久
开彩365下载安装

牙套一般要带多久

📅 07-10 👁️ 6349
Leader/统帅电视机除了
365体育封号怎么办

Leader/统帅电视机除了"D39LW7110"还有...

📅 07-06 👁️ 1062
淘宝客能赚多少钱?如何成为淘宝客?
365体育封号怎么办

淘宝客能赚多少钱?如何成为淘宝客?

📅 06-27 👁️ 3101
暖的五笔怎么打?暖的五笔拆分图.
365体育封号怎么办

暖的五笔怎么打?暖的五笔拆分图.

📅 07-07 👁️ 2069
腾讯靠什么重回上坡路
365体育封号怎么办

腾讯靠什么重回上坡路

📅 07-06 👁️ 2783