无法理解Leetcode 250解决方案中的单行代码

时间:2019-06-30 18:18:21

标签: python-3.x binary-tree

我在理解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

1 个答案:

答案 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相同的逻辑。这两个递归调用将启动,直到检查了树的所有节点为止。

希望这会有所帮助!如果您需要进一步说明,请在评论中告诉我。

相关问题