【发布时间】:2018-06-16 04:37:15
【问题描述】:
您好,我在 Python 中实现了一个链表,我得到了可以将链表复制到另一个链表的这段代码但我不明白为什么它插入到 0 索引处?
那复制的列表不会倒过来吗?但是我尝试运行它,输出是正确的并且是有序的?
我的插入函数
def insert(self, index, item):
if index<0 and index<-1*len(self):
raise IndexError("Negative index out of range")
elif index>0 and index>=len(self):
raise IndexError("Positive index out of range")
if index==0:
self.head=Node(item,self.head)
elif index>0:
node=self._get_node(index-1)
node.next=Node(item,node.next)
else:
node=self._get_node(index+len(self))
node.next=Node(item,node.next)
self.count+=1
我的复制功能
def copy(self):
new_list=linkedList()
self._copy_aux_(self.head,new_list)
return new_list
def _copy_aux_(self, node, new_list):
if node is not None:
self._copy_aux_(node.next, new_list)
new_list.insert(0,node.item)
有人可以帮忙解释一下吗?任何帮助将不胜感激!
编辑:好吧,显然它首先插入最后一项?为什么会这样?
【问题讨论】:
标签: python recursion linked-list