我看到这个问题已经被问了很多次,而且会被标记为重复的问题。然而,我看不到正确的答案。你知道吗
我知道在使用OOPS概念时,对象的实例作为第一个参数发送。然而,在解决一些算法时,我看到了一些没有定义self
的方法,这让我很困惑。你知道吗
有人能解释一下这里发生了什么,而不是为什么使用self
吗?你知道吗
class Solution:
def __init__(self):
self.ans=0
def countUnivalSubtrees(self, root: TreeNode) -> int:
if not root:
return 0
def chk(node):
if node is None:
return -1
if node.left is None and node.right is None:
self.ans+=1
return True
l=chk(node.left)
r=chk(node.right)
if node.left and node.right:
if node.left.val==node.right.val and l and r and node.val==node.left.val:
self.ans+=1
return True
if l==-1 and r and node.val==node.right.val:
self.ans+=1
return True
if r==-1 and l and node.val==node.left.val:
self.ans+=1
return True
return False
self.ans=0
chk(root)
return self.ans
这里我指的方法是chk(node)
。你知道吗
chk只是方法中的函数: 你可以这样重写你的课程:
相关问题 更多 >
编程相关推荐