102. Binary Tree Level Order Traversal

https://leetcode-cn.com/problems/binary-tree-level-order-traversal/

image.png

(图片来源[https://leetcode-cn.com/problems/binary-tree-level-order-traversal/

日期 是否一次通过 comment
2020-03-15 0

递归

public List> levelOrder(TreeNode root) {
        List> res = new ArrayList<>();
        if(root == null) {
            return res;
        }

        helper(root, res, 0);
        return res;
    }

    private void helper(TreeNode root, List> res, int level) {
        if(root == null) {
            return;
        }

        if(level >= res.size()) {
            res.add(new ArrayList<>());
        }

        res.get(level).add(root.val);

        helper(root.left, res, level+1);
        helper(root.right, res, level+1);

    }

非递归

public List> levelOrder(TreeNode root) {
        List> result = new ArrayList<>();

        if(root == null) {
            return result;
        }

        Queue nodeQ = new LinkedList<>();
        nodeQ.offer(root);
        while(! nodeQ.isEmpty()) {
            int qLen = nodeQ.size();
            List tempList = new ArrayList<>();

            for(int i=0; i

你可能感兴趣的:(102. Binary Tree Level Order Traversal)