100. Same Tree

来源:互联网 发布:apache虚拟主机不生效 编辑:程序博客网 时间:2024/05/16 01:18

Problem:


Solution:

判断两棵二叉树是否相等,显然采用递归方式比较简单,但递归方式往往又是晦涩难懂的。这道题的递归算是比较简单,首先我们要搞清楚可能的情况有哪些:
1、如果当前访问的两个结点都为空,那显然他们是相等的;
2、如果两个结点一个为空另一个不为空,那么显然不相等;
3、如果两个结点都不为空但他们的value不行等,那他们也不相等;
4、如果两个结点都不为空且value相等,那么需要做的就是进一步判断他们的左右子树是否相等;
代码如下:
class Solution {public:    bool isSameTree(TreeNode* p, TreeNode* q) {        if (!p && !q) return true;        else if (!p && q) return false;        else if (p && !q) return false;        else if (p && q && p->val != q->val) return false;        else return (isSameTree(p->left,q->left) && isSameTree(p->right,q->right));    }};



0 0
原创粉丝点击