判断t1树中是否有与t2树拓扑结构

判断t1树中是否有与t2树拓扑结构完全相同的子树

http://www.nowcoder.com/questionTerminal/4eaccec5ee8f4fe8a4309463b807a542

思路:后续遍历两个树,对结果res1和res2进行查找:res2是否在res1中。
程序能通过,有不足之处欢迎指正。
/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */

class Solution {
public:
    /**
     * 
     * @param root1 TreeNode类 
     * @param root2 TreeNode类 
     * @return bool布尔型
     */
    bool isContains(TreeNode* root1, TreeNode* root2) {
        if(root1==nullptr || root2==nullptr) return false;
        vector<int> res1,res2;
        //后序遍历
        pastorder(res1,root1);pastorder(res2,root2);
        int count=0;
        //查找res1中是否有res2
        for(int i=0,j=0;i<res1.size();i++)
        {
            if(res1[i]==res2[j])
            {count++;j++;}
            else {count=0;j=0;}
            if(count==res2.size()) 
                return true;
        }
         return false;
    }
    void pastorder(vector<int> &res,TreeNode* root)
    {
        if(root==nullptr) {return;}
        pastorder(res, root->left);
        pastorder(res, root->right);
        res.push_back(root->val);
    }
};

全部评论

相关推荐

Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
看到这个内容真是闹麻了。。。。。。现在有了AI以后很多人面试都会作弊吗?&nbsp;那对老老实实面试的人岂不是不公平....
程序员牛肉:公平那是对小孩子讲的童话故事,成年人的世界只有能不能接受失败的后果。 你要是能接受面试作弊被发现之后多家公司联合永久拉黑的后果,你就搞。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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