在代码的最后部分,当左右子树都没有目标元素时,会返回 -1。这是通过以下语句实现的:
int rightLevel = level(p.right, key, depth + 1);
return rightLevel;
如果左子树和右子树都不包含目标元素,则递归调用 level()
方法仍然会继续向下搜索左右子节点。当搜索到叶子节点时(即 p 为 null),说明已经遍历完整个二叉树但仍未找到目标元素,因此返回 -1 表示未找到。
需要注意的是,在调用 level()
方法时,初始深度为 1。每次递归调用中,将深度值加 1 来表示当前层级。当找到目标元素时,会返回对应的层数作为结果。
内容由零声教学AI助手提供,问题来源于学员提问