层序遍历:从根结点(第一层)开始,一次向下,从左往右 获取每一层所有结点的值。
代码中用到的二叉树BinaryTree类是 树结构-二叉查找树_lujiangui的专栏-CSDN博客 这里自定义的二叉树类
用的Queue类是 线性表-队列_lujiangui的专栏-CSDN博客 里的自定义队列类
public Queue<K> levelTraversal(){ Queue<K> keys = new Queue<>(); Queue<Node> nodes = new Queue<>(); nodes.add(root); while (!nodes.isEmpty()){ Node<K,V> n = nodes.get(); keys.add(n.key); //判断n有没有左子树 if (n.left!=null){ nodes.add(n.left); } if (n.right!=null){ nodes.add(n.right); } } return keys; }