首页 > 其他 > 详细

剑指offer-22

时间:2019-02-19 15:59:37      阅读:126      评论:0      收藏:0      [点我收藏+]

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

思路:利用队列先进先出的特点来缓存节点数据,从根节点开始,如果存在左右孩子,则把左右孩子放到队列中,同时删除队列头部数据,把数据存入list中。直到队列为空停止。

代码(Java):

import java.util.ArrayList;
import java.util.Queue;
import java.util.LinkedList;

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

 

剑指offer-22

原文:https://www.cnblogs.com/Luckidmi/p/10401514.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!