leetcode之比较两颗二叉树是否完全一样
2016-09-12 13:55
381 查看
递归的玩法看样子需要天赋和积累,我的递归都写复杂了,刚开始又想到递归本身,后来想到左右子树都要比较的情况,但是没想到用&&运算符,就写复杂了
先贴上我的:
class Solution {
public:
bool isSameTree(TreeNode *p, TreeNode *q) {
if(!p&&!q)
return true;
bool result=true;
dfs(p,q,result);
return result;
}
void dfs(TreeNode *p,TreeNode *q,bool &result){
if(!result)
return;
if(!p&&!q)
return;
if((!p&&q)||(!q&&p)){
result=false;
return;
}
if(p->val!=q->val){
result=false;
return;
}
dfs(p->left,q->left,result);
dfs(p->right,q->right,result);
}
};
再看别人的:
class Solution {
public:
bool isSameTree(TreeNode *p, TreeNode *q) {
if(!p&&!q)
return true;
else if(!p||!q)
return false;
else if(p->val!=q->val)
return false;
return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);
}
};
先贴上我的:
class Solution {
public:
bool isSameTree(TreeNode *p, TreeNode *q) {
if(!p&&!q)
return true;
bool result=true;
dfs(p,q,result);
return result;
}
void dfs(TreeNode *p,TreeNode *q,bool &result){
if(!result)
return;
if(!p&&!q)
return;
if((!p&&q)||(!q&&p)){
result=false;
return;
}
if(p->val!=q->val){
result=false;
return;
}
dfs(p->left,q->left,result);
dfs(p->right,q->right,result);
}
};
再看别人的:
class Solution {
public:
bool isSameTree(TreeNode *p, TreeNode *q) {
if(!p&&!q)
return true;
else if(!p||!q)
return false;
else if(p->val!=q->val)
return false;
return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);
}
};
相关文章推荐
- 比较两颗二叉树是否相等
- 【leetcode】比较两棵二叉树是否相同(Same Tree)
- Algorithm backup ---- Compare occurences of each character of two strings(比较两个字符串每个字符出现频率是否一样)
- Same Tree 比较是否是相同的树@ LeetCode
- 二叉树系列 - [LeetCode] Symmetric Tree 判断二叉树是否对称,递归和非递归实现
- 在GROUP BY子句中的CUBE与ROLLUP是否完全一样?
- LeetCode(Validate Binary Search Tree) 判断一个二叉树是否是二叉搜索树
- 编程比较两棵二叉树是否相等
- 【二叉树4】比较两个二叉树的结构是否相同
- LeetCode(Balanced Binary Tree ) 判断一个二叉树是否为平衡二叉树
- 比较两个等长字符串是否含有完全相同字符(忽略字符顺序)
- 函数: 判断两个字符串是否完全一样
- Delphi比较二维数组是否一样
- [互联网面试笔试汇总C/C++-15] 判断一棵二叉树是否是完全搜索树-微策略
- C#下比较两个等长字符串是否含有完全相同字符(忽略字符顺序)
- 判断两个数组是否完全一样(未完成)
- 比较两个文件是否一样
- c++二叉树(统计叶节点,判断两颗二叉树是否相等,交换二叉树的左孩子右孩子,输出叶子到根节点的路径)
- java判断两个文件的内容是否完全一样
- Leetcode-Symmetric Tree——判断二叉树是否对称