Profundidade de nós em árvores


A profundidade de uma nó é o número de arestas do caminho da raiz até aquele nó.

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 getDepth(TreeNode node, int value, int depth) {
        // If the node is null, return -1 (not found)
        if (node == null) {
            return -1;
        }
 
        // If the current node matches the value, return the depth
        if (node.value == value) {
            return depth;
        }
 
        // Recursively check the left and right subtrees, increasing the depth
        int leftDepth = getDepth(node.left, value, depth + 1);
        if (leftDepth != -1) {
            return leftDepth; // Node found in the left subtree
        }
        
        return getDepth(node.right, value, depth + 1); // Check right subtree
    }
 
    int getDepth(int value) {
        return getDepth(root, value, 0);
    }
}
 

Referências


Aula 1 - Árvores