剑指Offer-Java-从上往下打印二叉树

Posted 水坚石青

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指Offer-Java-从上往下打印二叉树相关的知识,希望对你有一定的参考价值。

从上往下打印二叉树


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

package com.sjsq.test;

import java.util.ArrayList;
import java.util.Deque;
import java.util.LinkedList;

/**
 * @author shuijianshiqing
 * @date 2020/5/24 10:43
 */

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

public class Solution {

    public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {

        // 定义双向队列
        Deque<TreeNode> deque = new LinkedList<>();
        // 定义数组来存放结果
        ArrayList<Integer> result = new ArrayList<>();

        if(root == null){
            return result;
        }

        deque.add(root);

        while(!deque.isEmpty()){
            TreeNode node = deque.getFirst();
            deque.pollFirst();
            result.add(node.val);

            // 判断有没有左子树
            if(node.left != null){
                deque.addLast(node.left);
            }

            // 判断有没有右子树
            if(node.right != null){
                deque.addLast(node.right);
            }
        }

        return result;
    }
}

以上是关于剑指Offer-Java-从上往下打印二叉树的主要内容,如果未能解决你的问题,请参考以下文章

从上往下打印二叉树-剑指Offer

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

Java 剑指offer(31)从上往下打印二叉树

剑指Offer 从上往下打印二叉树

剑指offer:面试题23从上往下打印二叉树

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