剑指offer—从上往下打印二叉树

来源:互联网 发布:axurerp7.0破解版mac 编辑:程序博客网 时间:2024/06/05 07:27

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

import java.util.ArrayList;import java.util.Queue;import java.util.LinkedList;public class Solution {    public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {        ArrayList<Integer> res = new ArrayList<Integer>();        if(root==null) return res;        Queue<TreeNode> queue = new LinkedList<TreeNode>();        queue.add(root);        res.add(root.val);        while(!queue.isEmpty()){            TreeNode temp = queue.poll();            if(temp.left!=null){                queue.add(temp.left);                res.add(temp.left.val);            }            if(temp.right!=null){                queue.add(temp.right);                res.add(temp.right.val);            }        }        return res;    }}

这一道题的思路比较简单,就是借助队列来实现二叉树的层序遍历,主要核心过程中,取出队列的头节点(并在队列中删除它),如果其左右节点有不为空的,则将其不为空的左右节点加入到队列中,直到队列为空

原创粉丝点击