输入一棵二元树,从上往下按层打印每个节点,每层从左往右打印。利用队列。
mport java.util.ArrayDeque; class TreeNode { TreeNode left; TreeNode right; int val; TreeNode(int x) { val = x; } } public class test { public void print(TreeNode root) { ArrayDeque<TreeNode> queue = new ArrayDeque<>(); if(root == null) { return; } queue.add(root); //当时懵逼,只知道循环队列,不知道节点怎么循环,后来发现让队列存储节点而不是节点值,每次取出节点当头结点,就可以循环节点了 while(!queue.isEmpty()) { TreeNode node = queue.poll(); System.out.print(node.val+"\t"); if(node.left!=null) { queue.add(node.left); } if(node.right!=null) { queue.add(node.right); } } }