如何逆向逐层输出树中的元素

来源:互联网 发布:大数据时代到来 编辑:程序博客网 时间:2024/06/03 16:18

如下所示的二叉树:
这里写图片描述
输出:13 5 9 10 7 4 8 12 6 3 11 2 1

public static<T> void levelOrderTraversalInReverse(BinaryTreeNode<T> root){ // 逆向逐层输出元素        if(root == null)            return;        DynArrayQueue<BinaryTreeNode<T>> queue = new DynArrayQueue<>();        DynArrayStack<BinaryTreeNode<T>> stack = new DynArrayStack<>();        queue.enQueue(root);        while(!queue.isEmpty()){            root = queue.deQueue();            if(root.getRight() != null)                queue.enQueue(root.getRight());            if(root.getLeft() != null)                queue.enQueue(root.getLeft());            stack.push(root);        }        while(!stack.isEmpty())            System.out.print(stack.pop().getData() + " ");    }

完整代码可以访问我的GitHub:https://github.com/StriverLi/Data-Structures-and-Algorithms-in-Java/blob/master/src/tree/BinaryTreeNode.java

0 0
原创粉丝点击