题目描述
比较两个树中的元素是否相同,相同返回true,否则返回false
思路:使用递归不断查找树的左右孩子结点,如果每层结点数值都相等,那么就返回true
代码如下
/**
* 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 && !q)
return true;
if(!p || !q)
return false;
//递归思想:如果结点数值相同,并且左右孩子结点返回值也为true
return p->val == q->val && isSameTree(p->left,q->left) && isSameTree(p->right,q->right);
}