首页 > 代码库 > Same Tree (二叉树DFS)

Same Tree (二叉树DFS)

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.

两颗二叉树完全相同,也就是某个节点的左右孩子,和另外一棵树的的对应节点的左右孩子相等。和镜像对称树那题类似。

代码:

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

 

Same Tree (二叉树DFS)