美文网首页
算法(3)层次顺序遍历二叉树

算法(3)层次顺序遍历二叉树

作者: 来搞事情 | 来源:发表于2018-09-16 09:27 被阅读0次

问题:
按照层次顺序遍历二叉树,每层换行打印

1、普通的按层打印二叉树只需要使用队列就可以了
2、按层打印二叉树,需要记录每层的最后节点。使用两个值记录,last和nlast,last记录每一层的最后一个节点,nlast记录当前出队列的节点的儿子节点,当出队的值等于last的时候换行

public static int[][] printTree1(TreeNode root) {
        int[][] result = new int[8][8];
        int i = 0, j = 0;
        TreeNode last = root, nlast = root;
        Queue<TreeNode> queue = new LinkedList<TreeNode>();
        queue.offer(root);
        while (queue.size() > 0) {
            TreeNode node = queue.poll();
            result[i][j++] = node.val;
            if (node.left != null) {
                queue.offer(node.left);
                nlast = node.left;
            }
            if (node.right != null) {
                queue.offer(node.right);
                nlast = node.right;
            }
            if (node == last) {
                last = nlast;
                i++;
                j = 0;
            }
        }
        return result;
    }

相关文章

  • 二叉树的层次遍历

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

  • 数据结构题目43:二叉树的层次遍历(非递归)

    题目:若二叉树为二叉链表存储结构,写出二叉树的层次遍历的非递归算法。 解题思路:算法中采用一个顺序存储结构队列QU...

  • 五、树的遍历

    1、层次遍历,广度优先遍历 要遍历二叉树,我们得有一个规则,按照从上往下,从左往右的顺序遍历二叉树,这样的遍历就叫...

  • 算法(3)层次顺序遍历二叉树

    问题:按照层次顺序遍历二叉树,每层换行打印 1、普通的按层打印二叉树只需要使用队列就可以了2、按层打印二叉树,需要...

  • 算法:二叉树遍历类题目

    算法:二叉树遍历类题目 树的遍历顺序是依赖于 根 节点的位置,前序遍历的顺序为 根左右,中序遍历的顺序为 左根右,...

  • 每日Leetcode—算法(10)

    100.相同的树 算法: 101.对称二叉树 算法: 104.二叉树的最大深度 算法: 107.二叉树的层次遍历 ...

  • java 二叉树遍历算法

    二叉树的遍历可以分为先序、中序、后序、层次遍历。 前序遍历,遍历节点的顺序为:根—>左—>右;中序遍历,遍历节点的...

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

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

  • 二叉树遍历算法

    摘要:二叉树主要有3种遍历算法,分为为先序、中序、后序。本文对二叉树的3种遍历算法的遍历规则进行介绍,并给出3种遍...

  • 二叉树操作

    树节点 逐行顺序解析二叉树 前序遍历二叉树 中序遍历二叉树 后序遍历二叉树 删除指定数值的节点 前序遍历顺序存储的...

网友评论

      本文标题:算法(3)层次顺序遍历二叉树

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