1. 题目
559. N 叉树的最大深度
2. 思路
- 深度优先遍历所有节点,并记录递归的深度
- 用一个引用变量res.maxDepth记录最大深度,每次都选最大的
- 最后返回递归深度+1(根节点的深度)
3. 代码实现
/**
* // Definition for a Node.
* function Node(val,children) {
* this.val = val;
* this.children = children;
* };
*/
/**
* @param {Node|null} root
* @return {number}
*/
var maxDepth = function(root) {
if (root === null) return 0
let res = {
maxDepth : 0
}
dfs(root, 0, res)
return res.maxDepth
};
function dfs(node, depth, res) {
res.maxDepth = Math.max(res.maxDepth, depth + 1)
if (node === null) return 0
for (let i = 0; i < node.children.length; i++) {
dfs(node.children[i], depth + 1, res)
}
}
4. 参考
JavaScript版解题思路…