Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:AttributeError:'NoneType'对象没有属性'val'行:14_Python_Data Structures_Tree - Fatal编程技术网

Python:AttributeError:'NoneType'对象没有属性'val'行:14

Python:AttributeError:'NoneType'对象没有属性'val'行:14,python,data-structures,tree,Python,Data Structures,Tree,我正试图穿过一棵树,但还是克服了错误。请帮帮我。我试图调用同一类的定义,并作为参数发送一个类对象。但调用定义无法识别参数的类型 Definition for a binary tree node. class TreeNode(object): def __init__(self, x): self.val = x self.left = None self.right = None class Solution(object):

我正试图穿过一棵树,但还是克服了错误。请帮帮我。我试图调用同一类的定义,并作为参数发送一个类对象。但调用定义无法识别参数的类型

Definition for a binary tree node.
class TreeNode(object):
     def __init__(self, x):
         self.val = x
         self.left = None
         self.right = None

class Solution(object):
     def same(self, s, t):
        if(s is None and t is None):
            return True
        if(s is None or t is None):
            return False
        return s.val==t.val and self.same(s.left,t.left) and self.same(s.right,t.right)

     def traverse(self, s,  t):
        return (s!="" and (self.same(s,t) or self.traverse(s.left,t) or self.traverse(s.right,t)))

     def isSubtree(self, s, t):
        # print s.val
        return self.traverse(s,t) 

假设t和s是TreeNode对象,在哪里声明它们?是否有可能将未声明的变量传递给解决方案?

问题看起来是检查,而不是遍历中的无检查。因为这个原因,它不会将任何值传递给相同的对象。

您正在测试,但没有。如果s==或t==:可能更像Pythonic,如果s或t:other ~~是的..我知道。但那不是我的问题,是的。我打电话给isSubtree of Solution。我可以在IsubTree中打印s.val,但不能在其他定义中打印s.val,但是?我还是很困惑,兄弟。问题解决了。我只是想知道“无”是如何产生差异的。使用“s”不是“无”,而不是“s”=。这些意味着不同的事情。所以当我写s时它会自动转换s吗?Python中没有自动转换。当你做s!=,它只是检查s的值是否为,它不会总是一个TreeNode或None。