Не проходит последний пункт
Делаю так: перед добавлением проверяю есть ли хоть у одного элемента availableToAddLeftChildren или availableToAddRightChildren в значении true, если нет, то делаю у всех элементов без детей эти параметры в true.
В методе public void add(String s):
if (notAvailableToAdd(x)) {
makeAvailableToAdd(x);
}
package com.javarush.task.task20.task2028;
import java.util.List;
public class Solution {
public static void main(String[] args) {
List<String> list = new CustomTree();
for (int i = 1; i < 16; i++) {
list.add(String.valueOf(i));
}
System.out.println("List size is " + list.size());
System.out.println("Expected parent is 3, actual parent is " + ((CustomTree) list).getParent("8"));
System.out.println("Expected parent is null, actual parent is " + ((CustomTree) list).getParent("20"));
//list.remove("3");System.out.println("3 removed " + list.size());
//System.out.println("Expected parent is null, actual parent is " + ((CustomTree) list).getParent("8"));
//list.add("16");System.out.println("16 added " + list.size());
//System.out.println("Expected parent is 9, actual parent is " + ((CustomTree) list).getParent("16"));
//list.remove("4");System.out.println("4 removed " + list.size());
//list.remove("5");System.out.println("5 removed " + list.size());
//list.remove("6");System.out.println("6 removed " + list.size());
//System.out.println("Expected true, actual " + list.add("20"));
System.out.println("Expected parent is 1, actual parent is " + ((CustomTree) list).getParent("20"));
System.out.println("=======================================");
list.remove("6");list.remove("3");list.remove("9");list.remove("10");list.remove("11");
list.remove("12");//list.remove("13");list.remove("14");
/*list.add("33");
System.out.println("Expected parent is 3, actual parent is " + ((CustomTree) list).getParent("33"));
list.add("22");
System.out.println("Expected parent is 3, actual parent is " + ((CustomTree) list).getParent("22"));
list.add("44");
System.out.println("Expected parent is 4, actual parent is " + ((CustomTree) list).getParent("44"));*/
System.out.println(((CustomTree) list).notAvailableToAdd(((CustomTree) list).root));
((CustomTree) list).makeAvailableToAdd(((CustomTree) list).root);
System.out.println(((CustomTree) list).notAvailableToAdd(((CustomTree) list).root));
}
}