LeetCode Same Tree


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.

The original problem is here.

The original code is here.

My Solution

I solve this problem in C++, as below:

*Same Tree
*Author: shuaijiang
*Email: zhaoshuaijiang8@gmail.com
using namespace std;

 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
class Solution {
    bool isSameTree(TreeNode* p, TreeNode* q) {
        if(p==NULL && q!=NULL)
            return false;
        if(p!=NULL && q==NULL)
            return false;
        if(p == NULL && q == NULL)
            return true;
        if(p->val != q->val)
            return false;
        if(isSameTree(p->left,q->left) && isSameTree(p->right,q->right))
            return true;
            return false;


To solve the problem, we use depth-first search to search the tree. In the process, recursion is needed.