树的广度优先遍历原理
树的广度优先遍历就是对每一层的节点依次访问,一层访问结束后进入下一层,直到遍历完所有节点,每个节点只访问一次。
树的广度优先遍历我们可以利用队列先进先出的特点来实现。
代码实现
ArrayList<Integer> list = new ArrayList<>();
if(root == null)
return list;
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
while(!queue.isEmpty()){
TreeNode tree = queue.poll();
if(tree.left != null)
queue.offer(tree.left);
if(tree.right != null)
queue.offer(tree.right);
list.add(tree.val);
}