首页 > 解决方案 > 链表数据结构的 NameError

问题描述

这是我编写的代码,我已经将链表初始化headactualNode我想在链表中添加数据的位置。

class Node(object):
    def __init__(self,data):
        self.data=data
        self.nextNode=None

class LinkedList(object):
    def __init__(self):
        self.head = None
        self.size = 0

    def remove(self,data):
        if self.head is None:
            return

        self.size=self.size-1
        currentNode=self.head
        previousNode=None

        while currentNode.data!=data:
            previousNode=currentNode
            currentNode=currentNode.nextNode

        if previousNode is None:
            self.head=currentNode.nextNode
        else:
            previousNode.nextNode=currentNode.nextNode

    def size1(self):
        return self.size

    def size2(self):
        actualNode=self.head
        size=0

        while actualNode is not None:
            size+=1
            actualNode=actualNode.nextNode
        return size

    def insertend(self,data):
        self.size=self.size+1
        newNode=Node(data)
        actualNode=self.head

    while actualNode.nextNode is not None:
        actualNode=actualNode.nextNode

    actualNode.nextNode=newNode

    def traverseList(self):
        actualNode=self.head

        while actualNode.nextNode is not None:
            print("%d" %actualNode.nextNode)
            actualNode=actualNode.nextNode

这是我尝试运行代码时遇到的错误,它基本上给出了一个NameError未定义actualNode的错误。

Traceback (most recent call last):
  File "E:\User\Python\DS ALGO\linkedlist.py", line 6, in <module>
    class LinkedList(object):
  File "E:\User\Python\DS ALGO\linkedlist.py", line 35, in LinkedList
    while actualNode.nextNode is not None:
NameError: name 'actualNode' is not defined

标签: python

解决方案


你有一些缩进问题:

def insertend(self,data):
        self.size=self.size+1
        newNode=Node(data)
        actualNode=self.head

while actualNode.nextNode is not None:
    actualNode=actualNode.nextNode

actualNode.nextNode=newNode

应该:

def insertend(self,data):
    self.size=self.size+1
    newNode=Node(data)
    actualNode=self.head

    while actualNode.nextNode is not None:
        actualNode=actualNode.nextNode

    actualNode.nextNode=newNode

推荐阅读