牛牛有一棵二叉树,其根节点为。牛牛想要在该二叉树中找到两棵子树,他们是同构的,且这两棵子树的大小是最大的。子树的大小为其节点个数。两棵树是同构表示为该两棵树结构是相同的。如 o o / / o o o o / / o o 两棵树是同构的。 o o / / o o o o / o o 是不同构的。 现在牛牛给你这棵二叉树,请你返回两棵最大同构子树的大小。-笔试面试资料

这是qklbishe.com第19495 篇笔试面试资料
提供答案分析,通过本文《牛牛有一棵二叉树,其根节点为。牛牛想要在该二叉树中找到两棵子树,他们是同构的,且这两棵子树的大小是最大的。子树的大小为其节点个数。两棵树是同构表示为该两棵树结构是相同的。如 o o / / o o o o / / o o 两棵树是同构的。 o o / / o o o o / o o 是不同构的。 现在牛牛给你这棵二叉树,请你返回两棵最大同构子树的大小。-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:

牛牛有一棵二叉树,其根节点为牛牛有一棵二叉树,其根节点为。牛牛想要在该二叉树中找到两棵子树,他们是同构的,且这两棵子树的大小是最大的。子树的大小为其节点个数。两棵树是同构表示为该两棵树结构是相同的。如       o       o     /      /     o   o   o   o   /       /  o       o    两棵树是同构的。       o       o     /      /     o   o   o   o   /          o          o           是不同构的。          现在牛牛给你这棵二叉树,请你返回两棵最大同构子树的大小。。牛牛想要在该二叉树中找到两棵子树,他们是同构的,且这两棵子树的大小是最大的。子树的大小为其节点个数。两棵树是同构表示为该两棵树结构是相同的。如

     o       o     /      /     o   o   o   o   /       /  o       o 
两棵树是同构的。
     o       o     /      /     o   o   o   o   /          o          o 
是不同构的。
现在牛牛给你这棵二叉树,请你返回两棵最大同构子树的大小。

牛牛有一棵二叉树,其根节点为。牛牛想要在该二叉树中找到两棵子树,他们是同构的,且这两棵子树的大小是最大的。子树的大小为其节点个数。两棵树是同构表示为该两棵树结构是相同的。如       o       o     /      /     o   o   o   o   /       /  o       o    两棵树是同构的。       o       o     /      /     o   o   o   o   /          o          o           是不同构的。          现在牛牛给你这棵二叉树,请你返回两棵最大同构子树的大小。 没有梦想何必远方
基本思路:树的序列化 注意不要添加多余的字符 容易memory limited
/**  * struct TreeNode {  *	int val;  *	struct TreeNode *left;  *	struct TreeNode *right;  *	TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}  * };  */ class Solution { public:     /**      * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可      *      *       * @param root TreeNode类       * @return int整型      */     int maxSubTree(TreeNode* root) {         // write code here         map<pair<string,int>, int> mp;         int res = 0;         dfs(root, mp);         for (const auto&[pa, cnt]: mp)             if (cnt > 1)             res = max(res, pa.second);         return res;     }          pair<string,int> dfs(TreeNode* root, map<pair<string,int>, int> &mp)     {         if (!root) return make_pair(string(""), 0);         string ans = "1";         int cnt = 1;         pair<string, int> left = dfs(root->left, mp);         pair<string, int> right = dfs(root->right, mp);         ans += "|" + left.first + "|";         ans += right.first;         cnt += left.second + right.second;         pair<string, int> pa = make_pair(ans, cnt);         mp[pa]++;         return pa;     } };

2021-12-24 20:15:03 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 牛牛有一棵二叉树,其根节点为。牛牛想要在该二叉树中找到两棵子树,他们是同构的,且这两棵子树的大小是最大的。子树的大小为其节点个数。两棵树是同构表示为该两棵树结构是相同的。如 o o / / o o o o / / o o 两棵树是同构的。 o o / / o o o o / o o 是不同构的。 现在牛牛给你这棵二叉树,请你返回两棵最大同构子树的大小。-笔试面试资料

提供最优质的资源集合

立即查看 了解详情