zoukankan      html  css  js  c++  java
  • [leetcode]Binary Tree Level Order Traversal

    尝试不用递归,那么就要用queue。不用递归就要用多一个queue来保存level。

    update:事实上,BFS一般都要用queue的。这道题目也可以用DFS解决,就是在递归的过程中传入每一层的level,那么到达某个level时,就往这个level的数组里放进数据。http://discuss.leetcode.com/questions/49/binary-tree-level-order-traversal

    而至于多一个queue,其实也不必,可以记录lastLevel和thisLevel两个数字来做到。

    public class Solution {
        public ArrayList<ArrayList<Integer>> levelOrder(TreeNode root) {
            // Start typing your Java solution below
            // DO NOT write main() function
            ArrayList<ArrayList<Integer>> ans = new ArrayList<ArrayList<Integer>>();
            LinkedList<TreeNode> queue = new LinkedList<TreeNode>();
            LinkedList<Integer> level = new LinkedList<Integer>();
            if (root == null) return ans;
            queue.offer(root);
            level.offer(1);
            ArrayList<Integer> arr = new ArrayList<Integer>();
            int currentLevel = 1;
            while (queue.size() != 0) {
                TreeNode node = queue.poll();
                int l = level.poll();
                if (l > currentLevel) {
                    currentLevel = l;
                    ans.add(arr);
                    arr = new ArrayList<Integer>();
                }
                if (node != null) {
                    arr.add(node.val);
                    if (node.left != null) {
                        queue.offer(node.left);
                        level.offer(l+1);
                    }
                    if (node.right != null) {
                        queue.offer(node.right);
                        level.offer(l+1);
                    }
                }
    
            }
            if (arr.size() != 0) ans.add(arr);
            return ans;
            
        }
    }
    

      

  • 相关阅读:
    迭代器设计模式
    python中的turtle库绘制图形
    Tesseract-OCR4.0识别中文与训练字库实例
    java图片处理
    Tess4J OCR简单使用教程
    C++ 排列最优解算法思想
    Swing使用JavaFXweb组件
    java专业术语
    java的分数类
    System Rules 更好的测试
  • 原文地址:https://www.cnblogs.com/lautsie/p/3252121.html
Copyright © 2011-2022 走看看