zoukankan      html  css  js  c++  java
  • LeetCode

    题目:

    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]
    ]
    

    思路:

    递归

    package treetraversal;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class BinaryTreeLevelOrderTraversal {
    
        public List<List<Integer>> levelOrder(TreeNode root) {
            List<List<Integer>> res = new ArrayList<List<Integer>>();
            //List<Integer> record = new ArrayList<Integer>();
            levelOrderTraversal(res, root, 0);
            return res;
        }
        
        private void levelOrderTraversal(List<List<Integer>> res, TreeNode root, int k) {
            if (root == null) return;
            if (res.size() < k + 1) {
                List<Integer> record = new ArrayList<Integer>();
                record.add(root.val);
                res.add(record);
            } else {
                res.get(k).add(root.val);
            }
            levelOrderTraversal(res, root.left, k + 1);
            levelOrderTraversal(res, root.right, k + 1);
        }
    
    }
  • 相关阅读:
    2018第0次作业
    第八次作业
    第七次作业
    第六次作业
    第四次作业
    第三次作业
    第二次作业
    第3次作业
    第2次作业
    第1次作业
  • 原文地址:https://www.cnblogs.com/null00/p/5117879.html
Copyright © 2011-2022 走看看