ниже кода используется закрытый метод для добавления в счетчик переменных. Ниже этой переменной есть условные выражения, которые, по моему мнению, не будут выполняться до тех пор, пока стек рекурсии не будет отслеживать восходящее слово. Я прав? Мой тест терпит неудачу, и я пытаюсь понять, не потому ли, что мой код неправильный, или я неправильно использую рекурсию.с использованием рекурсии для добавления к переменной
public boolean containsRightRedEdge() {
int count = 0;
count += containsRightRedEdge(root);
if(count > 0) return true;
return false;
}
private int containsRightRedEdge(Node n) {
if (n == null) return 0;
if (isRed(n.right)) {
return 1;
}
return containsRightRedEdge(n.left) + 0 + containsRightRedEdge(n.right);
}
Если строка 'return containsRightRedEdge (n.left) + 0 + containsRightRedEdge (n.left);' be 'return containsRightRedEdge (n.left) + 0 + containsRightRedEdge (n.right);'? –
Также, как проходит тестирование? Каков ваш вклад? Каков ваш ожидаемый результат? Какова ваша наблюдаемая продукция? – Turing85
@ Turing85 это не мой тест, его профессора, которые только говорят, проходят или терпят неудачу. Воистину, меня беспокоит, если я правильно использую recurison в этом случае. Если да, я напишу свой собственный тест, чтобы узнать, в чем проблема. Я хотел убедиться, что я правильно использовал рекурсию, прежде чем я сделал это, но –