【LeetCode】-Binary Tree Level Order Traversal

来源:互联网 发布:如何下载淘宝卖家版 编辑:程序博客网 时间:2024/06/15 09:55

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

confused what "{1,#,2,3}" means? > read more on how binary tree is serialized on OJ.

/** * Definition for binary tree * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {        private List<TreeNode> nextLevel( List<TreeNode> pre ){List<TreeNode> list = new ArrayList<TreeNode>();Iterator<TreeNode> it = pre.iterator();while( it.hasNext() ){TreeNode node =  it.next();if( node.left!=null ){list.add(node.left);}if( node.right!=null ){list.add(node.right);}}return list;}    public List<List<Integer>> levelOrder(TreeNode root) {        List<List<Integer>> lists = new ArrayList<List<Integer>>();        if(root==null)        return lists;        List<TreeNode> pre = new ArrayList<TreeNode>();        pre.add(root);        while( pre!=null && !pre.isEmpty() ){        List<Integer> list = new ArrayList<Integer>();        for( int i=0; i<pre.size(); i++ ){        list.add( pre.get(i).val );        }        lists.add(list);        pre = nextLevel(pre);        }        return lists;        }}


0 0