zoukankan      html  css  js  c++  java
  • 二叉树的层次遍历 Binary Tree Level Order Traversal

    最新加了注释的模板:

    本层拿出来,放到level中,下一层的放到q中

    class Solution {
        public List<List<Integer>> levelOrder(TreeNode root) {
            //初始化两个要用的数据结构
            List<List<Integer>> result = new LinkedList<List<Integer>>();
            Queue<TreeNode> q = new LinkedList<TreeNode>();
            
            //先定义退出的条件。是返回一个空的,不是返回完全的null
            if (root == null) {
                return result;
            }
            
            //推第一个根节点进去
            q.offer(root);
            
            //while这一层不是空
            while (!q.isEmpty()) {
                //测量Q的大小,表示目前的这一层
                int size = q.size();
                //建立新的数据结构
                List<Integer> level = new LinkedList<Integer>();
                
                //for循环放进去,注意此处要用固定的本层q的size
                for (int i = 0; i < size; i++) {
                    //本层拿出来,放到level中。以前的q作为这一层。
                    TreeNode node = q.poll();
                    level.add(node.val);
                    
                    //下一层的放到q中
                    if (node.left != null) {
                        q.offer(node.left);
                    }
                    if (node.right != null) {
                        q.offer(node.right);
                    }                
                }
                
                result.add(level);
            }
            
            return result;
        }
    }
  • 相关阅读:
    NVIDIA Jetson TX2刷机
    安装python2和3在centos7里面的问题
    js和DOM结合实现评论功能 (可以添加,删除)
    js实现计时
    js获取星期日期
    js登录界面演示
    下拉列表演示
    html表单练习
    一个底层w32汇编的小例子,演示 原创
    invoke和call的区别
  • 原文地址:https://www.cnblogs.com/immiao0319/p/14517885.html
Copyright © 2011-2022 走看看