java 层次遍历二叉树

2019-02-14  本文已影响0人  剽虫

public class Tree {

//头节点

    private  Nodehead;

    public NodegetHead() {

          return head;

    }

   public void setHead(Node head) {

       this.head = head;

    }

/**

* 层遍历

 * @param head  头节点

*/

    public  void  floorPrint(Node  head){

       //创建一个队列

        List queue=new LinkedList();

        queue.add(head);

        //队列不是空的,就一直循环

        while(!queue.isEmpty()){

            Node  n = ((LinkedList)queue).pop();

            //打印元素值

            System.out.println(n.getValue());

            if(Objects.nonNull(n.getLeft())){

                   queue.add(n.getLeft());

            }

            if(Objects.nonNull(n.getRight())){

                queue.add(n.getRight());

            }

    }

}

public static  void main(String[]  args){

Node  head =new Node("a");

        Node  son1 =new Node("b");

        Node  son2 =new Node("c");

        head.setLeft(son1);

        head.setRight(son2);

        Node  son3 =new Node("d");

        Node  son4 =new Node("e");

        son1.setLeft(son3);

        son1.setRight(son4);

        Node  son5 =new Node("f");

        Node  son6 =new Node("g");

        son2.setLeft(son5);

        son2.setRight(son6);

        Tree  t =new Tree();

        t.floorPrint(head);

    }

}

上一篇 下一篇

猜你喜欢

热点阅读