首先我们先来看一个基本的例子
Python当中创建一个整形或者其他什么类型的对象的时候,都可以理解为创建了一个指针指向一个已经存在的对象, 就像这个例子:是不是可以理解为a指向了5这个对象
我们再看一个例子
这个例子直观意思是a赋值为1,然后创建了一个变量b,将a的值赋给了b
但是我们查了地址发现,这就是将b指向了a啊,但是这种指针有一个特殊的地方,就是如果修改b的值,只会将b指向一个新的对象,而不会修改a的值
接下来我们再看一个用Python实现一个简单链表
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
a = ListNode(5) #创建了链表尾
b = ListNode(6,a)
c = ListNode(7,b)
head = c #c是链表头结点
p = head
while p != None: #循环打印链表节点
print(p.val)
p = p.next
运行结果:
这里就是利用了Python的对象是万能指针,可以指向任何一个对象
不得不说,Python的这种实现机制其实是极其简便的。