zoukankan      html  css  js  c++  java
  • LeetCode(102):Binary Tree Level Order Traversal

    Binary Tree Level Order Traversal:Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).For example:
    Given binary tree {3,9,20,#,#,15,7},

        3
       / 
      9  20
        /  
       15   7
    

    return its level order traversal as:

    [
      [3],
      [9,20],
      [15,7]
    ]
    题意:二叉树的层次遍历。
    思路:借助队列进行遍历。
    代码:
    public class Solution {
        public List<List<Integer>> levelOrder(TreeNode root) {
            if(root==null) return new ArrayList<List<Integer>>();
                 List<List<Integer>> result = new ArrayList<List<Integer>>();
                 Queue<TreeNode> queue = new LinkedList<TreeNode>();
                 int levCount  = 1;
                 int preLevCount = 1;
                 queue.add(root);
                 while(!queue.isEmpty()){
                     levCount = 0;
                     List<Integer> temp = new ArrayList<Integer>();
                     for(int i=0;i<preLevCount;i++){
                         TreeNode tree = queue.poll();
                         temp.add(tree.val);
                         if(tree.left!=null){
                             queue.add(tree.left);
                             levCount++;
                         }
                         if(tree.right!=null){
                             queue.add(tree.right);
                             levCount++;
                         }
                     }
                     preLevCount = levCount;
                     result.add(temp);
                 }
                 return result;
        }
    }
  • 相关阅读:
    Redis面试题
    spring boot错误: 找不到或无法加载主类
    JAVA的高并发编程
    Redis多机多节点集群实验
    Redis单机多节点集群实验
    Redis集群概述
    Redis的持久化之AOF方式
    Redis的持久化之RDB方式
    Redis持久化介绍
    Redis Keys的通用操作
  • 原文地址:https://www.cnblogs.com/Lewisr/p/5232196.html
Copyright © 2011-2022 走看看