102.二叉树的层序遍历

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。

示例 1:

image1

输入: root = [3,9,20,null,null,15,7]
输出: [[3],[9,20],[15,7]]

示例 2:

输入: root = [1]
输出: [[1]]

示例 3:

输入: root = []
输出: []

提示:

  • 树中节点数目在范围 [0, 2000]
  • -1000 <= Node.val <= 1000

Related Topics

  • 广度优先搜索
  • 二叉树

题目链接: link

解答

本题的难度是 Medium.

之前做 Hot100 的时候做过了, 直接复制之前的代码 E:), 感觉妙妙妙, 因为这样很自然地就是层序遍历了.

代码如下:

class Solution {
    List<List<Integer>> lists = new ArrayList<>();
    public List<List<Integer>> levelOrder(TreeNode root) {

        ceng(0, root);
        return lists;
    }

    private void ceng(int cengIndex, TreeNode node){
        if(node == null ){return ;}
        if(lists.size() < (1+cengIndex)){
            lists.add(new ArrayList<>());
        }
        lists.get(cengIndex).add(node.val);
        ceng(cengIndex+1, node.left);
        ceng(cengIndex+1, node.right);
    }
}

也是比较简单的题目, 0ms, 击败 100% 的提交.