有人可以解释这个退货声明:
return
(
a->data == b->data &&
identicalTrees(a->left, b->left) &&
identicalTrees(a->right, b->right)
)
答案 0 :(得分:1)
如果括号中的条件为真,则返回true,如果A部分为真且部分B为真且部分C为真,则括号中的三部分条件为真。
这是一个“压缩”表达式。如果将它与这个“扩展”版本进行比较可能会更容易理解,它完全相同:
if(a->data == b->data &&
identicalTrees(a->left, b->left) &&
identicalTrees(a->right, b->right) ) {
return TRUE;
} else {
return FALSE;
}
更具体地说,看起来它是“深度”二叉树相等性测试的递归实现的一部分:给定两个树节点的指针,如果它们的数据相同则指向相同的树,并且它们的左子树是同样的,他们的右子树是一样的。