Day12-二叉树的最大深度
🔗 LeetCode 104 - Maximum Depth of Binary Tree
📌 题目描述
给定一个二叉树,找出其最大深度。
最大深度是从根节点到最远叶子节点的最长路径上的节点数。
示例:
1 | 输入:[3,9,20,null,null,15,7] |
💡 解题思路
我们可以使用 递归 或 BFS 层序遍历 来解决:
- 递归法:最大深度 = 1 + max(左子树深度, 右子树深度)
- 层序遍历:每遍历一层,深度加一
- 时间复杂度:O(n)
- 空间复杂度:O(h),h 为树的高度(递归栈)
✅ JavaScript 实现(递归)
1 | var maxDepth = function(root) { |
✅ JavaScript 实现(BFS)
1 | var maxDepth = function(root) { |
🧠 思考拓展
- 如果要求“最小深度”呢?(LeetCode 111)
- 如何找出最长路径上的具体节点?
- 可否使用 DFS 的非递归写法?