leetcode_102

题目来源:https://leetcode.com/problems/binary-tree-level-order-traversal/

这道题和107题刚好是相反的,所以将每层节点的值加入最终结果的Arraylist的尾部即可

代码:

/**

  • Definition for a binary tree node.
  • public class TreeNode {
  • int val;
  • TreeNode left;
  • TreeNode right;
  • TreeNode(int x) { val = x; }
  • }
    */
    class Solution {
    public List<List> levelOrder(TreeNode root) {
    Queue<TreeNode> queue = new LinkedList<>();
    List<List<Integer>> result = new ArrayList<>();
    queue.add(root);
    while(!queue.isEmpty()){
        List<Integer> currentResult = new ArrayList<>();
        int size = queue.size();
        for(int i = 0;i < size;i++){
            TreeNode node = queue.remove();
            if (node != null){
                currentResult.add(node.val);
                queue.add(node.left);
                queue.add(node.right);
            }
        }
        if(!currentResult.isEmpty()){
            result.add(currentResult);
        }
    }
    return result;
    

    }
    }