2020-10-8
这道题一开始我是想利用先序遍历和中序遍历序列可以唯一确定一棵二叉树这个性质来解决问题,后来发现直接通过递归比较两个根的左子树是否相等且两个根的右子树是否相等来判断更为简便。
注意当两个根节点都为空时,他们也是相等的。
https://www.nowcoder.com/questionTerminal/9a9e74b71f944efab9992925f7f9a65e
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
public:
/**
*
* @param p TreeNode类
* @param q TreeNode类
* @return bool布尔型
*/
bool isSameTree(TreeNode* p, TreeNode* q) {
// write code here
if(p == NULL || q == NULL)
return p == q;
if(p->val != q->val)
return false;
return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
}
};