题解 | #NC15 求二叉树的层序遍历#

求二叉树的层序遍历

http://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3

import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 * }
 */

public class Solution {
    /**
     * 
     * @param root TreeNode类 
     * @return int整型ArrayList<ArrayList<>>
     */
    public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root) {
        if (root == null) {
            return new ArrayList();
        }
        List<TreeNode> queue = new ArrayList();
        ArrayList<ArrayList<Integer>> result = new ArrayList<>();
        queue.add(root);

         while(!queue.isEmpty()) {
             List<TreeNode> tmp = new ArrayList<>();
             ArrayList<Integer> tmpResult = new ArrayList<>();
             for(TreeNode node: queue) {
                 tmpResult.add(node.val);
                 if (node.left != null) {
                     tmp.add(node.left);
                 }
                 if (node.right != null) {
                     tmp.add(node.right);
                 }
             }
             if (!tmpResult.isEmpty()) {
                 result.add(tmpResult);
             }
             queue = tmp;
         }
         return result;
    }
}
全部评论

相关推荐

06-03 12:12
门头沟学院 Java
JamesGosli...:odoo就是💩
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务