1.题目:
给你两棵二叉树的根节点 p
和 q
,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
2.原理:
这里直接将两个数的结点进行比较,向下递归,一一比较,只要一旦找到节点值不同,或者当一个为空,一个不为空时,直接返回false,直到最后结点p,q为空,说明为,都相等,可以返回true。
3.整体代码:
/*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/
bool isSameTree(struct TreeNode* p, struct TreeNode* q) {if(p==NULL&&q==NULL){return true;}if(p==NULL||q==NULL){return false;}if(q->val!=p->val){return false;}return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);
}