在Python上的所需位置链接列表中插入特定节点

时间:2017-04-16 02:28:34

标签: python

我有想象或解决这个问题,我有这个节点和列表

class node:
    def __init__(self, info):
        self.info = info
        self.next = None

class list:
    def __init__(self):
        self.__first = None
        self.__last = None

我必须创建一个名为indexL(self,info,position)的函数,它将确切的节点放在所需的位置,这就是我现在所拥有的 (我已经创建了一个名为self.length()的方法来给出列表的大小)

def indexL(self, info, position):
    longit = self.length()
    n = node(info)
    p = self.__first
    if position == 0:
        self.__first = n
    else:
        if position > 0 and position < longit:
           if position == longit-1:
                self.__last = n
            else:

现在我被困在那里,顺便说一句我无法向节点添加任何方法或使用列表中的其他方法,如果有人想要帮助或任何推荐,我会非常感激

编辑:如果你感到困惑,我在上一次评论中会更清楚:P

1 个答案:

答案 0 :(得分:0)

您真的不需要length()方法......您需要做的就是遍历列表,直到找到位置并更新信息:

def indexL(self, info, position):
    if not self.__first:
        raise Error("Empty List")

    item = self.__first
    i = 0
    while item:
        if i == position:
            break
        item = item.next
        i += 1
    else:
        raise Error("Position is outside of the size of the list")

    item.info = info        # Replace info