这两天做leetcode的时候用到了不少链表的知识,顺序表的很多知识无法迁移到链表上,导致很多题解法过于复杂,所以补充一些链表的知识(代码示例基于Python)。
在python中用next指向下一个节点的位子
具体示例代码为:
self.item=item
self.next=None
然后是传统的增删改查环节:
向头部增加元素add(item)
向尾部增加元素append(item)
指定位置增加元素insert(pos,item)
删除某个元素remove(item)
查找某个元素是否存在search(item)
还有一些别的操作
例如判断链表是否为空 is_empty()
链表长度length()
遍历全部链表travel()
那么并没有相应的语法来特别定义地址,如何在python中实现
这里需要提到python中的一种特殊用法
a=1
b=2
a,b=b,a
这是只有在python中成立的一种写法,会交换a与b的值
这是因为在python中,这里的a=1并不意味着开辟一块内存,里面存放着10,a代表着这个内存的别名,而是说开辟了另外一块内存a,然后a中存储着10的地址从而指向10
在a,b=b,a时,从等号右边开始读取,a指向的是1,b指向的是2,这里交换的是ab的指向,而并没有交换保存1和2的空间,这也是python语言不需要指定变量类型的原因。
因此,从node1指向node2的时候,只需要直接node1.next=node2即可
因为此时=其实就是赋予了一个链接,指向了node2指向的元素
- THE END -
最后修改:2023年12月27日
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://ohhbene.com/231227.html