等价二叉树

来源:互联网 发布:java 免费开源框架 编辑:程序博客网 时间:2024/06/17 16:41

检查两棵二叉树是否等价。等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等。

样例
    1             1   / \           / \  2   2   and   2   2 /             /4             4

就是两棵等价的二叉树。

    1             1   / \           / \  2   3   and   2   3 /               \4                 4

就不是等价的。

/** * Definition of TreeNode: * class TreeNode { * public: *     int val; *     TreeNode *left, *right; *     TreeNode(int val) { *         this->val = val; *         this->left = this->right = NULL; *     } * } */class Solution {public:    /*     * @param a: the root of binary tree a.     * @param b: the root of binary tree b.     * @return: true if they are identical, or false.     */    bool isIdentical(TreeNode * a, TreeNode * b) {        // write your code here        if(a == NULL && b == NULL)            return true;        else if((a != NULL && b == NULL) || (a == NULL && b != NULL))            return false;        else if(a->val == b->val)            return isIdentical(a->left,b->left) && isIdentical(a->right,b->right);        else            return false;    }};


原创粉丝点击