- 描述:Given two binary trees, write a function to check if they are equal or not.
Two binary trees are considered equal if they are structurally identical and the nodes have the same value.
分析:判断两棵树是否相等,水题。
思路一:递归遍历。(3ms)
class Solution {
public:
bool isSameTree(TreeNode* p, TreeNode* q) {
if (p == NULL || q == NULL) return (p == q);
if (p -> val == q -> val) {
return isSameTree(p -> left, q -> left) && isSameTree(p -> right, q -> right);
}
return false;
}
};
- 思路二:one line solution (0ms)
class Solution {
public:
bool isSameTree(TreeNode* p, TreeNode* q) {
return (p == NULL && q == NULL) || ((q == NULL || p == NULL) && q != NULL && p != NULL) || ((p != NULL && q != NULL) && (p -> val == q -> val) && isSameTree(p->left, q->left) && isSameTree(p->right, q->right));
}
};