檢查兩棵二叉樹是否等價。等價的意思是說,首先兩棵二叉樹必須擁有相同的結構,而且每一個對應位置上的節點上的數都相等。ide
思路:
採用遞歸的思路:this
- 若是兩棵樹都是空,認爲是等價的。
- 若是a.val == b.val,則只需考慮左右子樹是否是等價二叉樹。
/** * 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; if(a==NULL || b==NULL) return false; if(a->val == b->val) { return isIdentical(a->left,b->left)&&isIdentical(a->right,b->right); } else return false; } };