Leetcode 102 二叉树的层序遍历
102.二叉树的层序遍历
给你二叉树的根节点 root
,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
示例 1:
输入: 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% 的提交.