LeetCode第107题 – 二叉树的层序遍历 II

90 views

题目

解答

class Solution {
    List<List<Integer>> nodeLevels = new LinkedList<>();

    public List<List<Integer>> levelOrderBottom(TreeNode root) {
        levelOrder(root, 0);

        List<List<Integer>> nodeLevels2 = new LinkedList<>();
        for (int i = 0; i < nodeLevels.size(); ++i) {
            nodeLevels2.add(0, nodeLevels.get(i));
        }

        return nodeLevels2;
    }

    public void levelOrder(TreeNode root, int k) {
        if (root == null) {
            return;
        }

        if (nodeLevels.size() <= k) {
            nodeLevels.add(new ArrayList<>());
        }
        nodeLevels.get(k).add(root.val);
        levelOrder(root.left, k + 1);
        levelOrder(root.right, k + 1);
    }
}

要点
层序遍历树时,保留节点的层序的信息。



若非注明,均为原创,欢迎转载,转载请注明来源:LeetCode第107题 – 二叉树的层序遍历 II

关于 JackieAtHome

基层程序员,八年之后重新启航

此条目发表在 Java, LeetCode 分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Protected with IP Blacklist CloudIP Blacklist Cloud