剑指offer第22题(从上往下打印二叉树)

来源:互联网 发布:php 类调用静态方法 编辑:程序博客网 时间:2024/05/22 09:49

题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。

思想:树的层次遍历,借助队列来完成。

java代码:

import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;/** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */public class Solution {    public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {        ArrayList<Integer> list=new ArrayList<Integer>();        if(root==null){            return list;        }        Queue<TreeNode> queue=new LinkedList<TreeNode>();        queue.offer(root);        while (!queue.isEmpty()){            TreeNode treeNode=queue.poll();            if(treeNode.left!=null){                queue.offer(treeNode.left);            }            if(treeNode.right!=null){                queue.offer(treeNode.right);            }            list.add(treeNode.val);        }        return list;    }}

原创粉丝点击