一、层序遍历的概念
将一颗二叉树按照层次顺序遍历整棵树。先遍历第一层(root层),接着遍历第二层,再接着时第三层…直到将所有节点遍历完成。
层序遍历示意图
二、思路分析
完成层序遍历需要用到一个队列Queue来辅助。
1、若当前节点不为空,将当前节点入队列;
2、判断当前队列是否为空;
3、若队列不为空,第一个元素出队列,并将其左子树入队列、右子树入队列;
4、若队列为空,说明层序遍历完成;
三、代码
package com.tree;
import java.util.LinkedList;
public class BinaryTreeTest {
public static void main(String[] args) {
TreeNode node1 = new TreeNode(1, "李白");
TreeNode node2 = new TreeNode(2, "宫本");
TreeNode node3 = new TreeNode(3, "韩信");
TreeNode node4 = new TreeNode(4, "甄姬");
TreeNode node5 = new TreeNode(5, "鲁班");
TreeNode node6 = new TreeNode(6, "孙尚香");
node1.left = node2;
node1.right = node3;
node2.left = node4;
node2.right = node5;
node3.right = node6;
BinaryTree binaryTree = new BinaryTree(node1);
binaryTree.levelOrder();
System.out.println(binaryTree.getHeight());
}
}
class BinaryTree {