我正在尝试比较两个二叉树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'**
p
和q
似乎是列表,而不是树。 [1, 2, 3]
是一个列表,我想您的意思是传递另一个TreeNode
实例。