使用字典和过程编程Python3的链表背后的逻辑

2024-09-29 05:23:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我成功地创建了一个函数,它将特定索引中的节点移动到链接列表的前面,但是我对逻辑有一些问题。首先,我的代码如下:

def movePos(lst, index):
    counter=0
    ptr=lst
    new_node={}
    while counter != (index-1):
        ptr=ptr['next']
        counter+=1
    new_node['data']=ptr['next']['data']
    ptr['next']=ptr['next']['next']
    new_node['next'] = lst
    return new_node

如果我有链接列表,如:

^{pr2}$

我知道字典的行为很奇怪,如果我有dictA={1:1}和dictB=dictA,如果我改变dictB,那么它就会改变dictA。但是,如果指针设置为与列表相等,那么当您在循环中重新分配指针时,为什么原始链接列表不会丢失一堆数据值?如果ptr=ptr['next'],那么为什么lst=lst['next']? 示例:

^{pr3}$

Tags: 函数node列表newdataindex节点链接