Спецификация печати n-дерева c path: AttributeError: объект 'list' не имеет атрибута 'data' - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь напечатать указанный c путь между узлом и листом. Я создал n-дерево класса (дерево с несколькими n-дочерними элементами), но когда я запускаю свою функцию, он сообщает мне

AttributeError: 'list' object has no attribute 'data'

Это мой код:

class Node(object):
    def __init__(self, data):
        self.data = data
        self.children = []
        self.left = None
        self.right = None

    def add_child(self, obj):
        self.children.append(obj)

def hasPath(root, arr, x):
    if (not root):
        return False

    arr.append(root.data)

    if(root.data == x):
        return True

    if(hasPath(root.left, arr, x) or hasPath(root.right, arr, x)):
        return True

    arr.pop(-1)
    return False

def printPath(root, x):

    arr = []

    if(hasPath(root, arr, x)):
        for i in range(len(arr) - 1):
            print(arr[i], end = "->")
        print(arr[len(arr) - 1])

    else:
        return []

Я все еще новичок в этом, поэтому не очень понимаю, как работают классы. Любая помощь будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...