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

76 views

题目

解答

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

    public List<List<Integer>> levelOrder(TreeNode root) {
        levelOrder(root, 0);
        return nodeLevels;
    }

    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);
    }

}

要点
单一的层序遍历可以使用DFS实现。
题目要求将同一层的成员聚合在一起输出,因此在遍历时,需要记录各节点的高度,这是本题目的难点。



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

关于 JackieAtHome

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

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

发表评论

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

Protected with IP Blacklist CloudIP Blacklist Cloud