层序遍历二叉树
利用队列模拟每一层,注意需要记录size。
其实重点就是如何判断每一层结束了,这里给出的方法就是记录size。
因为记录的size就是上一层的左右孩子的个数,所以成立。
等到size变成0的时候,下一层的元素也就加到队列中了。
妙啊,妙啊
对称二叉树
判断两子树是否相等:
def are_nodes_equal(self, node1: TreeNode, node2: TreeNode) -> bool:
# 如果两个节点都为None,则它们相等
if not node1 and not node2:
return True
# 如果其中一个节点为None,另一个不为None,则它们不相等
if not node1 or not node2:
return False
# 比较节点的值,左子树和右子树是否相等
return (
node1.val == node2.val and
self.are_nodes_equal(node1.left, node2.left) and
self.are_nodes_equal(node1.right, node2.right)
)