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

求二叉树的层序遍历

https://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) {
        // write code here
        ArrayList<ArrayList<Integer>> out = new ArrayList<>();
        if (root == null) {
            return out;
        } else {
            Stack<ArrayList<TreeNode>> stl = new Stack<>();
            ArrayList<TreeNode> rootnode = new ArrayList<>();
            rootnode.add(root);
            stl.add(rootnode);
            while (!stl.isEmpty()) {
                ArrayList<TreeNode> nows = stl.pop();
                ArrayList<TreeNode> temp = new ArrayList<>();
                ArrayList<Integer> tempout = new ArrayList<>();
                for (int i = 0; i < nows.size(); i++) {
                    TreeNode now = nows.get(i);
                    tempout.add(now.val);
                    if (now.left != null) {
                        temp.add(now.left);
                    }
                    if (now.right != null) {
                        temp.add(now.right);
                    }
                }
                if (temp.size()>0){stl.push(new ArrayList<>(temp));}
                out.add(new ArrayList<>(tempout));
            }
            return out;
        }
    }
}

全部评论

相关推荐

07-02 18:09
门头沟学院 Java
苍穹外卖和谷粒商城这俩是不是烂大街了,还能做吗?
想去重庆的鸽子在吐槽:你不如把这俩做完自己搞明白再优化点再来问 何必贩卖焦虑
点赞 评论 收藏
分享
Gaynes:查看图片
点赞 评论 收藏
分享
06-02 15:17
门头沟学院 Java
心爱的idea:怎么会呢 应该是打招呼有问题 问就说实习6个月全国可飞随时到岗
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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