您的位置:首页 > 其它

leetcode 100. Same Tree

2016-03-18 10:23 465 查看

100. Same Tree

题目

1,Given two binary trees, write a function to check if they are equal or not.

2,Two binary trees are considered equal if they are structurally identical and the nodes have the same value.

3,Subscribe to see which companies asked this question

/**
* 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 isSameTree(TreeNode* p, TreeNode* q) {

if(p==NULL&&q==NULL){//当两棵树为空时,判定为same tree
return true;
}else if(p==NULL&& q!=NULL || p!=NULL && q==NULL){//一棵树为空时,另一棵树不为空时,判定两棵树不等
return false;
}else{//当两棵树都不为空时,进行判断

if(p->val==q->val)//两棵树的值的判定
{
if(isSameTree(p->left,q->left) && isSameTree(p->right,q->right))
{//两棵树左右子树递归判定
return true;
}
else
{
return false;
}
}
else
{
return false;
}

}

}
};


写在后面

需要考虑的点:

1,需要考虑树为空的情况,并且叶子节点的左右子树都为空;

2,递归的时候,应该考虑的是根节点的值相等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: