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

简介: 剑指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;
    }
}
相关文章
|
5月前
|
存储 算法 Java
Java中,树与图的算法涉及二叉树的前序、中序、后序遍历以及DFS和BFS搜索。
【6月更文挑战第21天】Java中,树与图的算法涉及二叉树的前序、中序、后序遍历以及DFS和BFS搜索。二叉树遍历通过访问根、左、右子节点实现。DFS采用递归遍历图的节点,而BFS利用队列按层次访问。以下是简化的代码片段:[Java代码略]
45 4
|
1月前
|
Java
【用Java学习数据结构系列】震惊,二叉树原来是要这么学习的(二)
【用Java学习数据结构系列】震惊,二叉树原来是要这么学习的(二)
26 1
|
1月前
|
算法 Java C语言
【用Java学习数据结构系列】震惊,二叉树原来是要这么学习的(一)
【用Java学习数据结构系列】震惊,二叉树原来是要这么学习的(一)
23 1
|
18天前
|
算法 Java
JAVA 二叉树面试题
JAVA 二叉树面试题
14 0
|
6月前
|
存储 Java
Java实现二叉树
Java实现二叉树
63 0
|
3月前
|
存储 算法 Java
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
78 0
|
5月前
|
算法 Java 索引
【算法】重建二叉树并进行后序遍历的Java实现
【算法】重建二叉树并进行后序遍历的Java实现
53 5
|
5月前
|
算法 搜索推荐 Java
二叉树的基本概念、常见操作以及如何使用Java代码
二叉树的基本概念、常见操作以及如何使用Java代码
86 1
|
5月前
|
存储 算法 Java
【经典算法】LeetCode101:对称二叉树(Java/C/Python3实现含注释说明,Easy)
【经典算法】LeetCode101:对称二叉树(Java/C/Python3实现含注释说明,Easy)
33 1
|
5月前
|
存储 Java
JAVA中二叉树的基础与应用
JAVA中二叉树的基础与应用
42 1