我无法理解为什么我不能在同一个语句中初始化树的两边。我的任务是递归返回二叉树的所有叶子的列表(如果树为空则返回 null),但我得到的只是
"error: bad operand types for binary operator '&&'
return nbrLeaves(root.left, pong) && nbrLeaves(root.right, pong);"
我假设已经实现了带有节点的二叉树类。
我的代码如下:
public List<E> leaves(){
List<E> pong = new ArrayList<E>();
if (root == null){
return pong;
}
nbrLeaves(root, pong);
return pong;
}
public List<E> nbrLeaves(Node<E> root, List<E> pong){
if (root.left == null && root.right == null){
pong.add(root.element);
}
if (root.left != null && root.right == null){
return nbrLeaves(root.left, pong);
}
if (root.left == null && root.right != null){
return nbrLeaves(root.right, pong);
}
return nbrLeaves(root.left, pong) && nbrLeaves(root.right, pong);
}