zoukankan      html  css  js  c++  java
  • 横向遍历二叉树

    思路:
    维护一个节点队列和两个节点引用nlast(上一层最后一个节点)和last(本行最后一个节点)。
    初始化时候,nlast = last = root
    然后不断取出队列的第一个元素(BinaryTreeNode)node,然后将node的左右孩子节点加入队列,并移动nlast到最后一个孩子。
    然后判断node是否是last,是则打印值换行,否则只打印行

    public class BinaryNode {
        private BinaryNode leftChild ;
        private BinaryNode rightChild ;
        private int value ;
    
        public BinaryNode getLeftChild() {
            return leftChild;
        }
    
        public void setLeftChild(BinaryNode leftChild) {
            this.leftChild = leftChild;
        }
    
        public BinaryNode getRightChild() {
            return rightChild;
        }
    
        public void setRightChild(BinaryNode rightChild) {
            this.rightChild = rightChild;
        }
    
        public int getValue() {
            return value;
        }
    
        public void setValue(int value) {
            this.value = value;
        }
    
        public void print(){
            LinkedList<BinaryNode> queue= new LinkedList<BinaryNode>();
            BinaryNode nlast  = this;
            BinaryNode last = this ;
            queue.add(this);
            while (!queue.isEmpty()){
                final BinaryNode node = queue.poll();
                if(node.getLeftChild() != null){
                    queue.offer(node.getLeftChild());
                    nlast = queue.getLast();
                }
                if(node.getRightChild() != null){
                    queue.offer(node.getRightChild());
                    nlast = queue.getLast();
                }
                if(node == last){
                    System.out.println(node.getValue()+"
    ");
                }else{
                    System.out.println(node.getValue());
                }
            }
    
        }
    }
  • 相关阅读:
    php中的多态
    面向对象的继承与组合
    PHP中的__call和__callStatic方法
    PHP中的__set和__get方法
    PHP中对象的本质
    mysql字符串查找(统计客源)
    linux查看文件大小
    mysql常用字符串操作函数大全,以及实例
    mysql滑动订单问题
    mysql列反转Pivoting
  • 原文地址:https://www.cnblogs.com/niutao/p/11223510.html
Copyright © 2011-2022 走看看