比如我们有一个链表如下:
此时 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)的区别