zoukankan      html  css  js  c++  java
  • 树:广度优先遍历1

    package club.interview.tree;
    
    import club.interview.tree.base.TreeNode;
    
    import java.util.ArrayList;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Queue;
    
    /**
     * 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
     * fixme https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/
     * <p>
     * 3
     * / 
     * 9  20
     * /  
     * 15   7
     * <p>
     * [3 9 20 15 7]
     * <p>
     * 知识点扫盲
     * 1. LinkedList是Queue的实现类
     * 2. 出队入队的操作分别是 poll,offer
     *
     * @author QuCheng on 2020/6/3.
     */
    public class BFSTree {
    
        private TreeNode buildNode() {
            TreeNode t1 = new TreeNode(15);
            TreeNode t2 = new TreeNode(7);
            TreeNode t3 = new TreeNode(20, t1, t2);
            TreeNode t4 = new TreeNode(9);
            return new TreeNode(3, t4, t3);
        }
    
        public static void main(String[] args) {
            BFSTree b = new BFSTree();
            System.out.println(b.levelOrder(b.buildNode()));
        }
    
        /**
         * 列用队列FIFO的特性,遍历左右节点放入队列中,然后按层输出
         */
        public List<Integer> levelOrder(TreeNode root) {
            List<Integer> result = new ArrayList<>();
            if (root == null) {
                return result;
            }
            Queue<TreeNode> temp = new LinkedList<>();
            temp.offer(root);
            while (!temp.isEmpty()) {
                TreeNode treeNode = temp.poll();
                result.add(treeNode.val);
                if (treeNode.left != null) {
                    temp.offer(treeNode.left);
                }
                if (treeNode.right != null) {
                    temp.offer(treeNode.right);
                }
            }
            return result;
        }
    }
    

      

  • 相关阅读:
    工作流二次开发之新增表单实践(二)
    layui表格及工作流二次开发实践(一)
    记一个递归封装树形结构
    SpringCloud微服务之宏观了解
    统一结果返回&统一异常处理
    mybatis-Plus 实践篇之CRUD操作
    修改MariaDB-root密码
    iftop-监控服务器实时带宽情况
    Wordpress安装-报错说明
    MariaDB忘记root密码
  • 原文地址:https://www.cnblogs.com/nightOfStreet/p/13039876.html
Copyright © 2011-2022 走看看