树的子结构(树每个结点递归)

树的子结构

http://www.nowcoder.com/questionTerminal/6e196c44c7004d15b1610b9afca8bd88

/*
f:判断A,B是否相等
递归出口:当A==NUll 返回 false;  B==NUll返回true
当A->val==B->val 判断左右子树f(A->left,B->left),f(A->right,A->right);
否则返回false
HasSubtree 还要循环判断A中结点,与B中每一个结点比较,即f(A中任意一个结点,B)
返回当前结点,返回左右结点判断情况。
*/
class Solution {
public:
    bool dfs(TreeNode *r1,TreeNode *r2){
        if(!r2)return true;//B树分支遍历完,返回true
        if(!r1)return false;//A树为空不匹配,B不是子结构,返回false·
        return r1->val==r2->val && dfs(r1->left,r2->left) && dfs(r1->right,r2->right);
    }
    bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2) {
        if(!pRoot1||!pRoot2)return false;//有一个树不存在返回false
        return dfs(pRoot1,pRoot2)||HasSubtree(pRoot1->left, pRoot2)
            ||HasSubtree(pRoot1->right,pRoot2);
    }
};
全部评论

相关推荐

2025-11-22 16:20
已编辑
用友_Java开发实习生(实习员工)
等闲_:感觉有好多地方会被问穿,mysql存储向量这个方案问题应该很大的,如果深问的的话,为什么不用es,不用pg,不用mivus,分块策略是怎么做的,向量化是怎么向量化的,稠密向量还是稀疏向量,再深问余弦相似度,HSWM算法,Bm25算法,为什么不用混合检索或者Rank重排序优化?其他的项目不停机分库分表咋实现的,切库过程中数据有diff的话有没有补偿策略?既然有了分库分表了有没有碰到业务上不好优化的慢sql,让这个sql读从库?而且点评的话,最好自己压测过,要不这个数据也不好解释。现在就27的情况来看,很多同学已经有了中大厂实习,这个节点也会偏向这些有大厂实习的92同学,而且hc也不多,所以坚持海投吧
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务