Problem description:
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.
Solution: first determine whether the current root node is the same. If all values are null, true is returned directly. If the current root node is not empty and the stored values are the same, recursively determine whether the left and right subtree are the same. Otherwise, false is returned.
Code:
bool isSameTree(TreeNode *p,TreeNode *q){ if(p == NULL && q == NULL) return true; if(p == NULL && q != NULL) return false; if(p != NULL && q == NULL) return false; if(p->val != q->val) return false; else { bool isLeftSubtreeSame; bool isRightSubtreeSame; isLeftSubtreeSame = isSameTree(p->left,q->left); isRightSubtreeSame = isSameTree(p->right,q->right); if(isLeftSubtreeSame && isRightSubtreeSame) return true; else return false; }}
Leetcode: Same Tree