在python中比较二叉树时,得到“ AttributeError:'list'对象没有属性'val'”

问题描述 投票:0回答:1

我正在尝试比较两个二叉树p和q,但是连续出现一个错误,提示“ AttributeError:'list'对象没有属性'val'”。我无法克服该错误。您能帮我解决问题并增进理解吗?请在下面找到代码:

# Definition for a binary tree node.

p = [1,2,3]
q = [1,2,3]
class TreeNode(object):
    def __init__(self, v=0, l=None, r=None):
            self.val = v
            self.left = l
            self.right = r

    def compareBinaryTree(self, p, q):
        stack = [(p, q)]
        while stack:
            node1, node2 = stack.pop()
            print(node1,node2)
            if not node1 and not node2:
                continue
            elif None in [node1, node2]:
                return False
            else:
                if node1.val != node2.val:
                    return False
                stack.append((node1.right, node2.right))
                stack.append((node1.left, node2.left))
        return True

请在下面找到运行代码时显示的错误:

>>>TreeNode.compareBinaryTree(t,p,q)

[1, 2, 3] [1, 2, 3]
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-26-1372e5b88a65> in <module>
----> 1 TreeNode.compareBinaryTree(t,p,q)

<ipython-input-23-5eef65d6c59b> in compareBinaryTree(self, p, q)
     18                 return False
     19             else:
---> 20                 if node1.val != node2.val:
     21                     return False
     22                 stack.append((node1.right, node2.right))

**AttributeError: 'list' object has no attribute 'val'**
python-3.x binary-tree depth-first-search
1个回答
0
投票

pq似乎是列表,而不是树。 [1, 2, 3]是一个列表,我想您的意思是传递另一个TreeNode实例。

© www.soinside.com 2019 - 2024. All rights reserved.