我有一段时间的作业。在我的教授给它评分之后,他在代码中留下了一条评论说,"简化逻辑"。他没有取得任何积分,但我无法看到另一种接近它的方式......我对我有意义并且有所作为。那么,有人可以告诉我一种方法来改善我拥有的东西吗?我才知道...
public void breadthFirstTraversal(){
breadthFirstTraversal(root);
}
private void breadthFirstTraversal(TreeNode<E> node){
Queue<TreeNode<E>> queue = new LinkedList<>();
queue.add(node);
while(!queue.isEmpty()){
TreeNode<E> temp = queue.poll();
System.out.print(temp.data + " ");
if(temp.left != null && temp.right == null){
queue.add(temp.left);
}else if(temp.left == null && temp.right != null){
queue.add(temp.right);
}else if(temp.left != null && temp.right != null){
queue.add(temp.left);
queue.add(temp.right);
}
}
}
提前谢谢!
答案 0 :(得分:2)
temp.right
为空对于是否应添加temp.left
并且temp.left
为空而对添加的temp.right
没有影响。您可以将它减少到两个ifs:
if( temp.left != null ) queue.add( temp.left );
if( temp.right != null ) queue.add( temp.right );