8

问答题 8 /123

给出二叉树接口为
class node
{
    node *get_left();
    node *get_right();
    int get_data();
}
找出值为val的最浅节点所在层数。
int find(node *root, int val).

参考答案

int find(node * root, int val) {
    int ret = 1;

    if (root->get_data() == val) {
        return ret;
    } else {
        int  ret1 = 1 + find(root->get_left(), val);
        int  ret2 = 1 + find(root->get_right(), val);
        if (ret1 > ret2)
            ret = ret2;
        else
            ret = ret1;

        return ret;
    }
}