leetcode_100_Same Tree

来源:互联网 发布:加粉猫软件下载 编辑:程序博客网 时间:2024/06/15 23:33

欢迎大家阅读参考,如有错误或疑问请留言纠正,谢谢微笑


 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.

解法:原理如DFS,先判断左节点,然后判断右节点


/** * 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 isSameTree(TreeNode *p, TreeNode *q) {        if(p==NULL || q==NULL)            return p==NULL && q==NULL;        if(p->val == q->val)            return isSameTree(p->left,q->left) && isSameTree(p->right,q->right);        else            return false;    }};


//其他写法一class Solution {public:    bool isSameTreeUtil(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 isSameTreeUtil(p->left, q->left) && isSameTreeUtil(p->right, q->right);        }        else return false;    }    bool isSameTree(TreeNode *p, TreeNode *q) {        return isSameTreeUtil(p, q);    }};



//其他写法二class Solution {public:    bool isSameTree(TreeNode *p, TreeNode *q) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        if (p == NULL || q == NULL) {            return p == NULL && q == NULL;        }        return             p->val == q->val &&             isSameTree(p->left, q->left) && isSameTree(p->right, q->right);    }};


1 0
原创粉丝点击