java层次遍历二叉树

作者: chenxuxu | 来源:发表于2016-11-24 20:17 被阅读559次

思路很简单。通过队列,先将头结点放入队列,再遍历每个节点的左节点和右节点。

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

    /**
     * 遍历层次二叉树
     * 
     * @author chenjunxu
     *
     */
    public class Main {
        public static void main(String[] args) {
            // 队列
            LinkedList<TreeNode> queue = new LinkedList<TreeNode>();
            // 模拟数据
            TreeNode root = new TreeNode("1");
            TreeNode root2 = new TreeNode("2");
            root.leftTree = root2;
            // 将头节点加入队列
            queue.add(root);
            TreeNode temp = null;
            // 收集结果
            ArrayList<String> resultArray = new ArrayList<String>();
            // 通过while循环,将队列内容全部取出
            while (!queue.isEmpty()) {
                // 取出队列第一个节点
                temp = queue.poll();
                // 该节点若有左子树,则添加至队列尾部
                if (temp.leftTree != null) {
                    queue.add(temp.leftTree);
                }
                // 该节点若有右子树,则添加至队列尾部
                if (temp.rightTree != null) {
                    queue.add(temp.rightTree);
                }
                // 保存结果
                resultArray.add(temp.val);
            }
            // 输出结果
            for (String str : resultArray) {
                System.out.println(str);
            }
        }
    }

    /**
     * 二叉树节点
     * 
     * @author chenjunxu
     *
     */
    class TreeNode {
        public String val = "root";
        public TreeNode leftTree = null;
        public TreeNode rightTree = null;

        public TreeNode(String val) {
            this.val = val;
        }
    }

相关文章

  • 二叉树遍历java,非递归、层次。

    /** * 前序遍历 * 递归 */ /*** 前序遍历* 非递归*/ 后续遍历非递归 二叉树层次遍历基于java...

  • 二叉树的蛇形层次遍历(LeetCode.103)

    题目 解析 首先参考二叉树的层次遍历层次遍历二叉树(LeetCode--102二叉树的层次遍历)[https://...

  • Java二叉树的遍历

    Java二叉树的遍历 利用递归和非递归实现二叉树的先序,中序,后序遍历以及使用队列实现二叉树的层次遍历

  • 2022-01-01 II 044. 二叉树每层的最大值

    二叉树层次遍历加一个比较大小。java版本:

  • 二叉树遍历

    二叉树遍历(非递归写法) 先序遍历 中序遍历 后序遍历 层次遍历 给定一个二叉树,返回其按层次遍历的节点值。 (即...

  • 二叉树的基本算法

    一、二叉树的递归遍历 二、二叉树的层次遍历 二叉树的层次遍历是指二叉树从上到下,从左到右遍历数据。同一层中的节点访...

  • 二叉树的层次遍历

    三道层次遍历题,同一个模板,这边用到的是两个队列 二叉树的层次遍历 LeetCode题目地址 二叉树的层次遍历 加...

  • 二叉树的层次遍历

    一、二叉树的层次遍历原理 如图所示为二叉树的层次遍历,即按照箭头所指方向,按照1、2、3、4的层次顺序,对二叉树中...

  • 二叉树 基础操作

    二叉树的使用 二叉树结构 先序创建二叉树 DFS 先序遍历二叉树 中序遍历二叉树 后序遍历二叉树 BFS 层次遍历...

  • 数据结构重学日记(二十二)二叉树的层次遍历

    二叉树的层次遍历也属于非递归遍历,和之前先序、中序、后序遍历的区别在于层次遍历需要借助队列来实现。 层次遍历的操作...

网友评论

    本文标题:java层次遍历二叉树

    本文链接:https://www.haomeiwen.com/subject/lwvbpttx.html