1 定义树节点对象

public class TreeNode {
/**
* 节点属性
/
private String name;
/*
* 子节点
*/
public List children=new ArrayList<>();
  public String getName() {
	return name;
}

public void setName(String name) {
	this.name = name;
}

public List<TreeNode> getChildren() {
	return children;
}

public void setChildren(List<TreeNode> children) {
	this.children = children;
}
}

2 遍历树

/**
 * 遍历树 从上到下  
 */
public class TreeTraversal {
	public void levelOrderTraversal(TreeNode root) {
        Queue<TreeNode> queue = new LinkedList<>();
        if (root != null) {
            queue.offer(root);
        } 
        while (!queue.isEmpty()) {
            TreeNode node = queue.poll();//出队元素 
            System.out.println(node.getName());
 
            for (TreeNode child : node.children) {
                queue.offer(child);//添加队列元素 
            }
        }
    }
}

3 测试

public class TreeTest {
	public static void main(String[] args) {
		    // 构建一个树
        TreeNode root = new TreeNode();
        root.setName("根节点");
        
        TreeNode treenode21=new TreeNode();
        treenode21.setName("第2层-第1个节点");
        TreeNode treenode31=new TreeNode();
        treenode31.setName("第3层-第1个节点");
        treenode21.getChildren().add(treenode31);
        
        TreeNode treenode22=new TreeNode();
        treenode22.setName("第2层-第2个节点");
        
        root.children.add(treenode21);
        root.children.add(treenode22);
        
        //从上到下顺序遍历树节点
        TreeTraversal treeTraversal = new TreeTraversal();
        treeTraversal.levelOrderTraversal(root);
	}
}