我在理解LeetCode 250中的解决方案时遇到问题。问题是“给一棵二叉树,计算单值子树的数量。单值子树意味着该子树的所有节点都具有相同的值。”问题的链接是https://leetcode.com/problems/count-univalue-subtrees/。
我已附上解决方案。我看不懂代码。这行是什么意思?
id
完整的解决方案是
is_uni = self.is_uni(node.left) and is_uni and node.left.val == node.val
答案 0 :(得分:0)
您提到的代码行
is_uni = self.is_uni(node.left) and is_uni and node.left.val == node.val
此行代码递归调用类成员函数is_uni()
(self.some_member_function()
是python用于访问类当前实例的成员变量和函数的语法。 C,C ++等语言中的this
语句和该行的baisc逻辑是,您要检查以node.left
为根的左子树是否是单值树,并且{{1 }}为is_uni
,并且左节点True
的值与当前检查的node.left.val
的值相同。
现在,将重复此逻辑,直到您到达以node
为根的左子树的末尾。用于检查以node.left
为根的右子树是否为单值树并且其值node.right
与当前node.right.val
相同的逻辑。这两个递归调用将启动,直到检查了树的所有节点为止。
希望这会有所帮助!如果您需要进一步说明,请在评论中告诉我。