Same Tree

来源:互联网 发布:2016淘宝双十一抢红包 编辑:程序博客网 时间:2024/05/23 21:46

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 {private:    bool checkSame(TreeNode *p, TreeNode *q)    {        if((p==NULL) && (q==NULL))        {            return true;        }                        if((p==NULL) || (q==NULL))        {            return false;        }                if((p!=NULL) && (q!=NULL))        {            if(p->val==q->val)            {                 return checkSame(p->left, q->left) && checkSame(p->right, q->right);            }            else            {                return false;            }        }    }public:    bool isSameTree(TreeNode *p, TreeNode *q) {                checkSame(p,q);    }};

2015-01-25

简化版本

class Solution {public:    bool isSameTree(TreeNode *p, TreeNode *q) {        if (p == NULL && q == NULL) {            return true;        }        else if (p == NULL || q == NULL) {            return false;        }                if (p->val == q->val) {            return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);        }        else {            return false;        }    }};


0 0