树四:从上往下打印二叉树
/**
* 题目:从上往下打印二叉树
* 描述:从上往下打印出二叉树的每个节点,同层节点从左至右打印。
* 方案:
* 思路:使用两个队列一个存放节点,一个存放值。先将根节点加入到队列中,然后遍历队列中的元素,遍历过程中,
* 访问该元素的左右节点,再将左右节点加入到队列中来。
*
* */
public class Four { public static ArrayList<Integer> one(TreeNode node) { ArrayList<Integer> list = new ArrayList<>(); if (node ==null) { return list; } Queue<TreeNode> queue = new LinkedList<>(); queue.offer(node); //添加一个元素 while(!queue.isEmpty()) { TreeNode treeNode = queue.poll();//返回队列的元素 list.add(treeNode.var); if(treeNode.left !=null) { queue.offer(treeNode.left); } if(treeNode.right !=null) { queue.offer(treeNode.right); } } return list; } }
天助自助者