DFS:100. Same Tree

来源:互联网 发布:易建联nba生涯数据 编辑:程序博客网 时间:2024/06/07 04:15

比较根节点,然后比较左子树,然后是右子树。

如果p为空且q为空则true,如果p不为空且q不为空,比较pq的值和左子树右子树,其他情况都是false

/** * 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) {        if(p == NULL && q == NULL)            return true;        if(p != NULL && q != NULL)            return p->val == q->val && isSameTree(p->left,q->left) && isSameTree(p->right, q->right);        else            return false;    }};
再少几行:

bool isSameTree(TreeNode *p, TreeNode *q) {    if (p == NULL || q == NULL) return (p == q);    return (p->val == q->val && isSameTree(p->left, q->left) && isSameTree(p->right, q->right));}