前言
层序遍历:从根结点(第一层)开始,一次向下,从左往右 获取每一层所有结点的值。
代码示例
代码中用到的二叉树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;
}