Я пытаюсь решить эту проблему на Practice-It, но у меня возникли проблемы с ней в течение достаточно долгого времени.
Напишите совпадения метода, которые возвращают счетчик количество узлов в одном дереве, которые соответствуют узлам в другом дереве. Совпадение определяется как пара узлов, которые находятся в одном и том же положении в двух деревьях относительно их общего root и в которых хранятся одни и те же данные.
До сих пор я пробовал ниже, но я не совсем понимаю количество, которое я хочу, и я не совсем уверен, почему.
public int matches(IntTree t2)
{
return match(overallRoot, t2.overallRoot);
}
public int match(IntTreeNode tree1, IntTreeNode tree2)
{
if(tree1 == null && tree2 == null)
return 1;
if(tree1 == null || tree2 == null)
return 0;
if(tree1.data == tree2.data)
return 1;
int left = match(tree1.left, tree2.left);
int right = match(tree1.right, tree2.right);
return left + right;
}
Любая помощь будет по достоинству оценена!