什么是层次遍历?
层次遍历就是对树的每一层节点进行遍历。
代码实现:
主要分为三部分:
1. 声明一个内部类,表示树的节点。
private class TreeNode<K,V> implements Map.Entry<K,V> { private K key; private V value; public TreeNode<K,V> left; public TreeNode<K,V> right; public TreeNode(K key, V value) { this.key = key; this.value = value; } @Override public K getKey() { return key; } @Override public V getValue() { return value; } @Override public V setValue(V value) { this.value = value; return value; } @Override public String toString() { return "TreeNode{" + "key=" + key + ", value=" + value + '}'; } }
2. 实现一个创建树的方法,通过对这个方法输入节点列表,生成对应的树结构。
public void createTree(List<K> keys, List<V> values) throws Exception { Queue<TreeNode<K,V>> queue = new LinkedList<TreeNode<K,V>>(); // 如果两个列表大小不一样或者为空,抛出异常 if (keys.size() != values.size() && keys.isEmpty() && values.isEmpty()) throw new Exception("Inputs' scale are not equal."); // 如果root为空,创建root if (root == null) root = new TreeNode<K,V>(keys.get(0), values.get(0)); TreeNode<K,V