Nível de nós em árvores


O nível de um nó pode ser definido seguindo um algoritmo recursivo.

  1. A raiz da árvore está no nível 0 (zero) -> caso base
  2. Os níveis dos demais nós é igual ao nível do pai + 1

Exemplo de implementação em Java:

class TreeNode {
    int value;
    TreeNode left, right;
 
    TreeNode(int item) {
        value = item;
        left = right = null;
    }
}
 
class BinaryTree {
    TreeNode root;
 
    int getLevel(TreeNode node, int value, int level) {
        if (node == null) {
            return -1;
        }
 
        if (node.value == value) {
            return level;
        }
 
        int leftLevel = getLevel(node.left, value, level + 1);
        if (leftLevel != -1) {
            return leftLevel;
        }
        
        return getLevel(node.right, value, level + 1);
    }
 
    int getLevel(int value) {
        return getLevel(root, value, 0);
    }
}
 

Referências


Aula 1 - Árvores