思路:使用队列,先将根节点放入队列,当根节点出队列时,将根节点的左右孩子压入队列,依次类推,即可横向遍历二叉树。
左边压,右边出,出的时候将左右子树压进队列
public class CrosswiseTree {
public static void readTree(TreeNode head) {
LinkedList<TreeNode> queue = new LinkedList<>();
//入队列
queue.addLast(head);
while(queue.size()>0) {
//出队列
TreeNode cur = queue.pop();
System.out.println(cur.val);
if (cur.left!=null) {
queue.addLast(cur.left);
}
if (cur.right!=null) {
queue.addLast(cur.right);
}
}
}
public static void main(String[] args) {
TreeNode treeNode = new TreeNode(0);
treeNode.left = new TreeNode(1);
treeNode.right = new TreeNode(2);
treeNode.left.left = new TreeNode(3);
treeNode.left.right = new TreeNode(4);
treeNode.right.left = new TreeNode(5);
treeNode.right.right = new TreeNode(6);
treeNode.left.left.left = new TreeNode(7);
treeNode.left.right.left = new TreeNode(9);
CrosswiseTree.readTree(treeNode);
}
}