Skip to content

100. 相同的树 #3

Open
Open
@Doragd

Description

@Doragd
  • 100. 相同的树
  • 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
  • 递归定义法:按照定义法来做
    • 定义: 如果两棵树相等则左子树和左子树相同, 右子树和右子树相同, 且根的值相同
    • 分类讨论终止: pq其中一个为空, 直接返回false; pq均为空, 则返回true
class Solution {
public:
    //递归定义+分类讨论
    //定义: 如果两棵树相等则左子树和左子树相同, 右子树和右子树相同, 且根的值相同
    //分类讨论终止: pq其中一个为空, 直接返回false; pq均为空, 则返回true
    bool isSameTree(TreeNode* p, TreeNode* q) {
        if(!q && !p) return true;
        if(p && q && p->val == q->val) return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
        return false; 
    }
};

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions