题解 | #牛群的相似结构#
牛群的相似结构
https://www.nowcoder.com/practice/ecaeef0d218440d295d9eff63fbc747c
知识点:
二叉树/递归
分析:
确定终止条件,两个一起深搜到空,那就中途没出现什么状况,返回true
如果中间有一个空,或者两个值不相等,则返回false
需要判断p的左子树和q的左子树,以及各自的右子树
AC代码C++:
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * }; */ class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param p TreeNode类 * @param q TreeNode类 * @return bool布尔型 */ bool isSameTree(TreeNode* p, TreeNode* q) { if(p == nullptr && q == nullptr) return true; if(p == nullptr || q==nullptr || p->val != q->val) return false; return isSameTree(p->left,q->left) && isSameTree(p->right,q->right); } };