0
点赞
收藏
分享

微信扫一扫

算法练习29:二叉树的按层遍历

二叉树的按层遍历

实现二叉树的按层遍历
1、其实就是宽度优先遍历,用队列
2、可以通过设置flag变量的方式,来发现某一层的结束
1、申请一个新的队列,将头节点放入队列
2、每弹出一个节点,将该节点的左右孩子都放入队列

未命名文件 69.png

package com.example.springboot;
import java.util.LinkedList;
import java.util.Queue;

public class LevelTraversalBT {
    //方法一:
    public static class Node {
        public int value;
        public Node left;
        public Node right;
        public Node(int v) {
            value = v;
        }
    }

    public static void level(Node head) {
        if(head==null){
            return;
        }
        Queue<Node> queue=new LinkedList<>();
        queue.add(head);
        while (!queue.isEmpty()){
            Node cur=queue.poll();
            System.out.print(cur.value);
            if (cur.left!=null){
                queue.add(cur.left);
            }
            if(cur.right!=null){
                queue.add(cur.right);
            }
        }
        System.out.println();
    }
   //测试方法
    public static void main(String[] args) {
        Node head = new Node(1);
        head.left = new Node(2);
        head.right = new Node(3);
        head.left.left = new Node(4);
        head.left.right = new Node(5);
        head.right.left = new Node(6);
        head.right.right = new Node(7);
        level(head);
        System.out.println("========");
    }
}
举报

相关推荐

0 条评论