zoukankan      html  css  js  c++  java
  • 107. 二叉树的层次遍历 II

    107. 二叉树的层次遍历 II

    https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/description/

    package com.test;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * @Author stono
     * @Date 2018/8/27 上午10:40
     */
    public class Lesson107 {
        public static void main(String[] args) {
            TreeNode t1 = new TreeNode(1);
            TreeNode t2L = new TreeNode(2);
            TreeNode t2R = new TreeNode(2);
            TreeNode t3_1 = new TreeNode(3);
            TreeNode t3_2 = new TreeNode(4);
            TreeNode t3_3 = new TreeNode(4);
            TreeNode t3_4 = new TreeNode(3);
            t1.left = t2L;
            t1.right = t2R;
            t2L.left = t3_1;
            t2L.right = t3_2;
            t2R.left = t3_3;
            t2R.right = t3_4;
            List<List<Integer>> lists = levelOrderBottom(t1);
            System.out.println(lists);
        }
        public static List<List<Integer>> levelOrderBottom(TreeNode root) {
            List<List<Integer>> res = new ArrayList<>();
            if (root == null) {
                return res;
            }
            List<Integer> list = new ArrayList<>(8);
            list.add(root.val);
            TreeNode leftNode = root.left;
            TreeNode rightNode = root.right;
            List<TreeNode> nodes = new ArrayList<>();
            nodes.add(leftNode);
            nodes.add(rightNode);
            // 进行递归累加
            levelOrderBottom(res, nodes);
            res.add(list);
            return res;
        }
    
        private static void levelOrderBottom(List<List<Integer>> res, List<TreeNode> nodes) {
            List<Integer> list = new ArrayList<>(8);
            List<TreeNode> nodes2 = new ArrayList<>();
            for (TreeNode node : nodes) {
                if (node != null) {
                    list.add(node.val);
                    nodes2.add(node.left);
                    nodes2.add(node.right);
                }
            }
            // 如果遍历结果中包含了多个数字
            if (list.size() > 0) {
                levelOrderBottom(res, nodes2);
                res.add(list);
            }
        }
    }
  • 相关阅读:
    启动Mysql后找不到服务或出现找不到指定文件
    WEB-MVC模式图示
    Java中Map集合的遍历方式
    sun.misc.BASE64Encoder找不到jar包的解决方法
    Tomcat常用的网站发布方式
    Sql Server查询行号
    Mysql下载安装问题
    【数学】环逆序
    【搜索】【the first editoral】OpenJudge 我是最快的马
    The First Blog
  • 原文地址:https://www.cnblogs.com/stono/p/9541053.html
Copyright © 2011-2022 走看看