leetcode -- 100、101

100.相同的树

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

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
在这里插入图片描述
在这里插入图片描述

解题方法

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

在这里插入图片描述

101.对称二叉树

题目描述

在这里插入图片描述

解题方法

递归

bool equal(struct TreeNode * leftRoot, struct TreeNode * rightRoot)
{
    if (leftRoot == NULL && rightRoot == NULL)
        return true;
    if (leftRoot == NULL || rightRoot == NULL)
        return false;
//    if (leftRoot->val != rightRoot->val)
//        return false;
    return (leftRoot->val == rightRoot->val) 
        && equal(leftRoot->left, rightRoot->right) 
        && equal(leftRoot->right, rightRoot->left);
}

bool isSymmetric(struct TreeNode* root)
{
    if (root == NULL)
        return true;

    return equal(root->left, root->right);
}

在这里插入图片描述

发布了184 篇原创文章 · 获赞 253 · 访问量 34万+

猜你喜欢

转载自blog.csdn.net/williamgavin/article/details/104292904