从上往下打印二叉树

来源:互联网 发布:交换机端口绑定ip地址 编辑:程序博客网 时间:2024/06/02 09:11

题目描述

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

思路:意思就是按层遍历然后放到一个list集合里面去,所以创建一个队列每次把一层的结点放进去,然后一个一个判别是否有left结点和right结点直到最后一排

代码如下:

import java.util.ArrayList;import java.util.Queue;import java.util.LinkedList;/**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.add(root);        while(!queue.isEmpty()){            TreeNode tmp = queue.poll();            if(tmp != null){                list.add(tmp.val);            }            if(tmp.left != null){                queue.add(tmp.left);            }            if(tmp.right != null){                queue.add(tmp.right);            }        }        return list;    }}


0 0