思路:使用隊列,先將根節點放入隊列,當根節點出隊列時,將根節點的左右孩子壓入隊列,依次類推,即可橫向遍歷二叉樹。
左邊壓,右邊出,出的時候將左右子樹壓進隊列
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);
}
}