牛客题霸NC15 求二叉树的层序遍历题解
求二叉树的层序遍历
https://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3?tpId=117&&tqId=34936&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking
知识点:树 bfs
难度:中等
考过的企业: 快手,字节跳动,好未来,美团,涂鸦移动,作业帮,叠纸游戏,远景能源,猿辅导,有赞,网易,小米,滴滴,百度,FreeWheel,OPPO,最右
考过的职位: 研发工程师(包括java工程师,c++工程师等),客户端工程师,前端工程师,算法工程师,测试工程师
dfs解决
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
/**
*
* @param root TreeNode类
* @return int整型ArrayList<ArrayList<>>
*/
public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root) {
// write code here
ArrayList<ArrayList<Integer>> result = new ArrayList<>();
helper(root, result, 0);
return result;
}
private void helper(TreeNode root, ArrayList<ArrayList<Integer>> result, int depth) {
if (root == null) return;
if (result.size() == depth) result.add(new ArrayList<>());
result.get(depth).add(root.val);
helper(root.left, result, depth + 1);
helper(root.right, result, depth + 1);
}
} 