我在试着检查二叉树是否是左的。只有当左子树的高度不小于右子树的高度,并且左子树和右子树也是“左”子树时,才会发生这种情况。如果树是空的或者是叶子。
换句话说,树和所有子树必须是“左”的,即在树和每个子树中,左子树的高度不应小于右子树的高度。
现在我有了这个,但是我不知道如何用迭代和递归的方式来描述树是左的。
public boolean isLeftyRecursive(BinaryTree<T> arbol){
if (arbol.isEmpty() || arbol.isLeaf()) {
return true;
} else {
if(isLeftyRecursive(arbol.getLeft()) && isLeftyRecursive(arbol.getRight())){
}
}return false;
}
//ISLEFTY ITERATIVE
public boolean isLeftyIterative(BinaryTree<T> arbol){
if (this.isEmpty() || this.isLeaf()) {
return true;
} else {
}return false;
}
我的二叉树定义是
BinaryTree<T>{
BinaryNode<T> root;}
我的二进制节点定义是
BinaryNode<T> {
BinaryTree<T> left;
BinaryTree<T> right;
T content; }
任何关于它的想法或帮助都是非常有用的:c
1条答案
按热度按时间vngu2lb81#
递归解决方案:
第二个基本条件检查左树或右树是否为空。如果right为空(不管我们的左边是否为空),我们的树就是lefty。如果right不为null,那么left应该为null(因为
if
所以我们的树不是左撇子。