Open ChuChencheng opened 4 years ago
LeetCode 104
给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。
给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7],
3 / \ 9 20 / \ 15 7
返回它的最大深度 3 。
/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } */ /** * @param {TreeNode} root * @return {number} */ var maxDepth = function(root) { return root === null ? 0 : Math.max(maxDepth(root.left), maxDepth(root.right)) + 1 };
DFS 同时记录当前节点深度
/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } */ /** * @param {TreeNode} root * @return {number} */ var maxDepth = function(root) { if (!root) return 0 const stack = [[root, 1]] let depth = 0 while (stack.length) { const info = stack.pop() const node = info[0] const currentDepth = info[1] if (node) { depth = Math.max(currentDepth, depth) stack.push([node.right, currentDepth + 1]) stack.push([node.left, currentDepth + 1]) } } return depth };
问题
LeetCode 104
解
递归
非递归
DFS 同时记录当前节点深度