есть дерево, а дерево определяются какКак найти максимальное общее поддерево
public class TreeNode
{
int val;
vector<TreeNode *> children;
TreeNode(int x) { val = x; }
}
пожалуйста найти maxmum общего поддерево (имеет наибольшее количество узлов, то вал каждый узла не имеет значения , только структура поддеревьев быть тем же самым)
ех,
1
/ | \
2 3 4
//| \ /| \
5 6 7 8 9 10 11
поддерева с корнем 3 и 4 являются maxmum общим поддерево (обратите внимание, что может быть больше, чем два поддерева являются общим поддерево) ,
выводятся корни максимальных поддерев.
Я думаю, что метод грубой силы не очень хорош, а как насчет хэширования, но я не понимаю, как хешировать структуру дерева .
Один из способов представления корня (под) дерева состоит из строки, содержащей открывающиеся и закрывающиеся круглые скобки. Этого должно быть достаточно, чтобы вы начали. –