标签:cti 遍历 递归 fun 返回 roo 变量 col 更新
dfs
题解前递归
根节点是0,变量保存最大深度,如果当前深度大于最大深度就更新,返回最大深度
var maxDepth = function(root) { let maxDeep = 0 //最大深度 let dg = (root,deep = 0) => { //deep当前深度 if(root == null) return deep++ if(deep > maxDeep) maxDeep = deep dg(root.left,deep) dg(root.right,deep) } dg(root) return maxDeep };
题解后递归
叶子节点是0,递归到父节点 比较左子节点和右子节点的大小 + 1
var maxDepth = function(root) { if(root == null) return 0 let left = maxDepth(root.left) let right = maxDepth(root.right) return Math.max(left,right) + 1 };
bfs
遍历当前层所有节点,弹出,如果有子节点入栈,如果栈的长度大于0,深度 + 1
var maxDepth = function(root) { if(root == null) return 0 let arr = [root] let deep = 1 while(arr.length){ let len = arr.length for(let i = 0; i < len; i++){ let n = arr.shift() if(n.left) arr.push(n.left) if(n.right) arr.push(n.right) } if(arr.length > 0) deep++ } return deep };
标签:cti 遍历 递归 fun 返回 roo 变量 col 更新
原文地址:https://www.cnblogs.com/jiaobaba/p/14300610.html