本文主要是介绍【Leetcode 100.】判断两颗二叉树是否是相同的树,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
代码:
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);
}
思路:
我一开始写的代码是想按照:自己,左子树,右子树的思路来的,先判断自己跟自己的左孩子右孩子是否和另一棵树相等,但是遇到了问题:当两棵树的root都有左孩子时,会误判成false
这种就过不了了
所以将思路改为只判断当前节点是否两棵树相等,让左孩子和右孩子去当下一次递归的主体
这篇关于【Leetcode 100.】判断两颗二叉树是否是相同的树的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!