leetcode 00. 相同的树 C语言

老子叫甜甜 提交于 2019-12-18 05:09:18

给定两个二叉树,编写一个函数来检验它们是否相同。

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

示例 1:

输入:       1         1
              /  \       / \
             2   3   2   3

        [1,2,3],   [1,2,3]

输出: true
示例 2:

输入:      1          1
              /             \
             2               2

        [1,2],     [1,null,2]

输出: false
示例 3:

输入:       1         1
               / \       / \
             2   1   1   2

        [1,2,1],   [1,1,2]

输出: false

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */


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

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!