刷题

简介: 刷题

class Solution {

public List<List<Integer>> levelOrderBottom(TreeNode root) {
    //解题思路:DFS遍历,注意结果采用头插法
    List<List<Integer>> result = new ArrayList();
    dfs(result, root, 0);
    return result;
}

private void dfs(List<List<Integer>> result, TreeNode root, int level){
    if(root == null){
        return;
    }
    //初始化新的层在第一行
    if(level == result.size()){
        result.add(0, new ArrayList());
    }
    //写入结果集;第level层要插入从后往前数的第level层
    result.get(result.size() - level - 1).add(root.val);
    
    //左子树
    dfs(result, root.left, level + 1);
    //右子树
    dfs(result, root.right, level + 1);
}

}

相关文章
|
6月前
刷题(二)
刷题(二)
25 1
|
6月前
刷题(一)
刷题(一)
33 0
|
6月前
|
Serverless C语言
【C刷题】day7
【C刷题】day7
44 0
|
12月前
|
C语言
【C刷题】day5
【C刷题】day5
44 0
【C刷题】day5
|
12月前
|
编译器 数据安全/隐私保护 C++
【C刷题】day4
【C刷题】day4
66 0
【C刷题】day4
|
12月前
|
C语言
【C刷题】day6
【C刷题】day6
66 0
|
12月前
|
C语言
【C刷题】day1
【C刷题】day1
110 0
|
12月前
|
编译器 C语言
【C刷题】day3
【C刷题】day3
53 0
|
12月前
【C刷题】day2
【C刷题】day2
58 0
|
前端开发
牛客刷题Day3
牛客刷题Day3
93 0