算法作业_35(2017.6.16第十七周)(算法机考模拟题3)
2017-06-13 22:24
232 查看
1002. 等价二叉树
两个二叉树结构相同,且对应结点的值相同,我们称这两个二叉树等价.
例如:以下两个二叉树等价
1 1
/ \ / \
2 3 2 3
而以下两个则不等价
1 1
/ \ / \
2 3 3 2
以下两个也不等价
1 1
/ \ / \
2 3 2 2
给出两个二叉树p和q,判断它们是否等价.
p和q的结点数不多于100000,每个结点的数值在1和1000000000之间.
请为下面的Solution类实现解决上述问题的isEqual函数,函数的两个参数p和q分别代表两个二叉树的根节点,如果以p和q为根的二叉树等价则函数返回true,否则返回false.
#include<iostream>
using namespace std;
/**
Definition for a binary tree node.
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
*/
class Solution {
public:
bool isEqual(TreeNode* p, TreeNode* q) {
if(p == NULL && q == NULL)
return true;
if((p == NULL && q != NULL) || (p != NULL && q == NULL) || (p->val!=q->val)){
return false ;
}
return isEqual(p->left,q->left)&&isEqual(p->right,q->right);
}
};
两个二叉树结构相同,且对应结点的值相同,我们称这两个二叉树等价.
例如:以下两个二叉树等价
1 1
/ \ / \
2 3 2 3
而以下两个则不等价
1 1
/ \ / \
2 3 3 2
以下两个也不等价
1 1
/ \ / \
2 3 2 2
给出两个二叉树p和q,判断它们是否等价.
p和q的结点数不多于100000,每个结点的数值在1和1000000000之间.
请为下面的Solution类实现解决上述问题的isEqual函数,函数的两个参数p和q分别代表两个二叉树的根节点,如果以p和q为根的二叉树等价则函数返回true,否则返回false.
#include<iostream>
using namespace std;
/**
Definition for a binary tree node.
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
*/
class Solution {
public:
bool isEqual(TreeNode* p, TreeNode* q) {
if(p == NULL && q == NULL)
return true;
if((p == NULL && q != NULL) || (p != NULL && q == NULL) || (p->val!=q->val)){
return false ;
}
return isEqual(p->left,q->left)&&isEqual(p->right,q->right);
}
};
相关文章推荐
- 算法作业_33(2017.6.16第十七周)(算法机考模拟题1)
- 算法设计与结构基础作业第十七周
- 算法作业_44(2017.6.27第十九周)(算法机考模拟题4)
- 算法课第十七周作业 | Same Tree
- 算法第十七周作业01
- 算法作业_32(2017.6.15第十七周)
- Sicily 相连的1 | 算法期末机考模拟题
- Sicily 无环图 | 算法期末机考模拟题
- Sicily 会议安排 | 算法期末机考模拟题
- Sicilly 等价二叉树 | 算法期末机考模拟题
- 算法分析与设计课程作业第十七周#1#2
- 判断一个正整数是否为质数的算法(第二周作业2.1)
- 算法分析与设计第一次作业
- 算法设计课作业系列1——Maximum Subarray
- 算法 第二次作业
- 算法课程Leetcode作业第一周技术博客
- 算法作业相关总结
- 第十七周作业 1.0
- Hadoop集群三种作业调度算法介绍
- 算法设计课作业系列3——Different Ways to Add Parentheses