leetcode 100. 相同的树 101. 对称二叉树
题意
一个判断两个树是否相同 , 一个判断两个树是否对称
代码
bool dfs(TreeNode* p, TreeNode*q)
{
if((!p && q) || (!q && p))
return false;
if(!p && !q)
return true;
if(p->val != q->val)
return false;
if(!dfs(p->left,q->left))
return false;
if(!dfs(p->right,q->right))
return false;
return true;
}
bool isSameTree(TreeNode* p, TreeNode* q) {
return dfs(p,q);
}
分割
class Solution {
public:
bool issame(TreeNode* l, TreeNode* r)
{
if((!l&&r) ||(l && !r))
return false;
if(!l && !r)
return true;
if(l->val != r->val)
return false;
if(!issame(l->left,r->right))
return false;
if(!issame(l->right,r->left))
return false;
return true;
}
bool isSymmetric(TreeNode* root) {
if(!root)
return true;
return issame(root->left,root->right);
}
};

浙公网安备 33010602011771号