zoukankan      html  css  js  c++  java
  • 第102题:二叉树的层次遍历

    一. 问题描述

    给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。

    例如:

    给定二叉树: [3,9,20,null,null,15,7],

         3

        /   

      9   20

           / 

       15   7

    返回其层次遍历结果:

    [

      [3],

      [9,20],

      [15,7]

    ]

    二. 解题思路

    本题思路:采用递归+广度优先遍历的方法进行求解(创建递归函数(全局变量list存储结果值,临时变量data存储某一层节点))。

    步骤一:将根节点加入到data表格中。

    步骤二:遍历data节点将其子节点重新填入到新的data中,并将值添加到temp表格中。

    步骤三:将temp表添加到list中,并返回步骤二,直到新的data表为空。

    步骤四:返回list表。

    三. 执行结果

    执行用时 :2 ms, 在所有 java 提交中击败了65.23%的用户

    内存消耗 :36.2 MB, 在所有 java 提交中击败了52.67%的用户

    四. Java代码

    class Solution {
        public List<List<Integer>> levelOrder(TreeNode root) {
            
            List<List<Integer>> list=new ArrayList<List<Integer>>();
            if(root==null) {
                return list;
            }
            List<TreeNode> data=new ArrayList<TreeNode>();
            data.add(root);
            Tree(list,data);
            return list;
        }
        
        public void Tree(List<List<Integer>> list,List<TreeNode> data)
        {
            if(data.size()==0)
            {
                return;
            }
            List<TreeNode> temp=new ArrayList<TreeNode>();
            List<Integer> result=new ArrayList<Integer>();
            for(int i=0;i<data.size();i++)
            {
                TreeNode m=data.get(i);
                result.add(m.val);
                
                if(m.left!=null) {
                    temp.add(m.left);
                }
                if(m.right!=null) {
                    temp.add(m.right);
                }
            }
            list.add(result);
            Tree(list,temp);
        }
    }
  • 相关阅读:
    iptables 常用命令解析
    iptables 常用处理动作
    centos7 中iptables、firewalld 和 netfilter 的关系
    iptables 的几个状态
    centos7 中没有service iptables save指令来保存防火墙规则
    iptables 数据走向流程
    数据库PDO简介
    php连接mySql,加密函数
    php数组,常量,遍历等
    php的会话控制
  • 原文地址:https://www.cnblogs.com/xiaobaidashu/p/11800861.html
Copyright © 2011-2022 走看看