java检查二叉树中的节点是否有子节点?
我是二叉树新手,我想知道如何编写一个方法来检查树中的特定节点是否是叶(没有子节点)
public boolean isChild(int item){
TreeNode cursor = root;
if (cursor.getLeft() == null && cursor.getRight() == null){
return true;
}
}
这就是我目前所知道的
你可以在下面搜索框中键入要查询的问题!
我是二叉树新手,我想知道如何编写一个方法来检查树中的特定节点是否是叶(没有子节点)
public boolean isChild(int item){
TreeNode cursor = root;
if (cursor.getLeft() == null && cursor.getRight() == null){
return true;
}
}
这就是我目前所知道的
# 1 楼答案
假设二叉树中的整数是唯一的,则必须首先找到具有该整数值的节点。因此,编写一个findNode(int-item)方法,返回与item具有相同值的TreeNode。方法的其余部分很好,但如果if语句不为true,则必须返回false,否则将出现编译错误
# 2 楼答案
基本上,如果您的二叉树对象具有
RightNode
和LeftNode
实例变量,您应该能够通过以下代码确定节点是否为叶:另外,我不太理解
int item
作为方法参数的用途# 3 楼答案
上面这一行会使你的代码出错。因为每次调用
isChild()
,函数只会检查root
是否有左右子级您的
isChild()
函数应该将树node
作为参数,并检查此node
是否有子级根据您的需要:
因此,请尝试以下方法: