LeetCode 100. Same Tree

来源:互联网 发布:数据库unique 编辑:程序博客网 时间:2024/04/30 23:23

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 a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    bool isSameTree(TreeNode* p, TreeNode* q) {        bool record=false;        if(p==NULL&&q==NULL){            return true;        }        else if(p==NULL&&q!=NULL||p!=NULL&&q==NULL)return false;        TreeNode *tempPleft=p->left;        TreeNode *tempPright=p->right;        TreeNode *tempQleft=q->left;        TreeNode *tempQright=q->right;        if(tempPleft==NULL&&tempPright==NULL&&tempQleft==NULL&&tempQright==NULL){            if(p->val==q->val)            return true;            else return false;        }        else if(tempPleft!=NULL&&tempPright!=NULL&&tempQleft!=NULL&&tempQright!=NULL){            if(tempPleft->val==tempQleft->val&&tempQright->val==tempPright->val){            record=isSameTree(tempPleft,tempQleft)&&isSameTree(tempPright,tempQright);            }            else{                record = false;            }        }        else if(tempPleft==NULL&&tempPright!=NULL&&tempQleft==NULL&&tempQright!=NULL){        if(tempQright->val==tempPright->val)            record=isSameTree(tempPright,tempQright);            else{                record=false;            }        }        else if(tempPleft!=NULL&&tempPright==NULL&&tempQleft!=NULL&&tempQright==NULL){        if(tempPleft->val==tempQleft->val)            record=isSameTree(tempPleft,tempQleft);            else{                record=false;            }        }        else{            record=false;        }        return record;    }};
0 0
原创粉丝点击