二叉树按行打印,换行。。。。

Posted

tags:

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

public class Tree {
    TreeNode last;
    TreeNode nlast;
    public void printTree(TreeNode root) {
        Queue<TreeNode> queue = new LinkedList<>();
        queue.add(root);
        last = root;
        nlast = root;
        while (!queue.isEmpty()) {
            TreeNode t = queue.peek();
            System.out.print(queue.poll().data + " ");
            if (t.left != null) {
                queue.add(t.left);
                nlast = t.left;
            }
            if (t.right != null) {
                queue.add(t.right);
                nlast = t.right;
            }
            // 如果当前输出结点是最右结点,那么换行
            if (last == t) {
                System.out.println();
                last = nlast;
            }
        }
    }

差不多就是用俩指针,一个指向最后节点,另一个一次指向,当便利到的节点等于每行最后一个节点时就换行。。。。。。。。。

以上是关于二叉树按行打印,换行。。。。的主要内容,如果未能解决你的问题,请参考以下文章

二叉树按层打印

Java二叉树按顺序插入

广度优先搜索--二叉树按层遍历

按之字形顺序打印二叉树

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

c++二叉树按层序遍历顺序输入(由上到下),先序遍历顺序输出,求完整代码