网站添加百度统计代码吗网站建设哪家好公司
还是应用递归的思想,将这个问题拆分为三个部分,第一:当两棵树均为空树,或者访问到最后的子树时均为空树时,则返回true。第二:当两棵树中其中一棵树为空树,另一棵树不是空树,证明两棵树不相同,则返回false。第三:我们可以将这个问题思考成首先比较这两棵树的根节点,根节点相同再比较这两个根节点的左子树的根节点,左子树比较完毕后再开始比较右子树,依次递归。若节点不同则返回false,若相同则继续递归。到最后返回各节点的逻辑与值。若其中有一个节点不同则返回值就是false。
bool isSameTree(struct TreeNode* p, struct TreeNode* q)
{//两棵树都为空if(p==NULL&&q==NULL){return true;}//其中一棵为空,另一棵不为空if(p==NULL||q==NULL){return false;}if(p->val!=q->val){return false;}return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);
}
感兴趣的可以自行尝试一下哦~
. - 力扣(LeetCode)