【算法|104 二叉树的最大深度(Java)】两种思路,见注释
/**
* Definition for a binary tree node.
* public class TreeNode {
*int val;
*TreeNode left;
*TreeNode right;
*TreeNode() {}
*TreeNode(int val) { this.val = val;
}
*TreeNode(int val, TreeNode left, TreeNode right) {
*this.val = val;
*this.left = left;
*this.right = right;
*}
* }
*/
//遍历二叉树计算答案的思路。
class Solution {
// 记录最大深度
int res = 0;
// 记录遍历到的节点的深度
int depth = 0;
// 主函数
int maxDepth(TreeNode root) {
traverse(root);
return res;
}// 二叉树遍历框架
void traverse(TreeNode root) {
if (root == null) {
// 到达叶子节点,更新最大深度
res = Math.max(res, depth);
return;
}
// 前序位置
depth++;
traverse(root.left);
traverse(root.right);
// 后序位置
depth--;
}}
// 分解问题计算答案的思路
// class Solution {
//public int maxDepth(TreeNode root) {
//if(root ==null){
//return 0;
//}
//int leftDepth = maxDepth(root.left);
//int rightDepth = maxDepth(root.right);
//int res = Math.max(leftDepth,rightDepth) + 1;
//return res;
//}
// }
推荐阅读
- 算法|leetcode378. 有序矩阵中第 K 小的元素
- 开发|leetcode112 路径总和
- C语言必学的数据结构|还在抱怨数据结构难? 一文带你搞懂如何AC算法题(2022版)
- 数据结构|模拟栈的实现(JAVA)
- CS 440 迷宫算法求解
- byte转换文件,文件转换byte数据的各个方式、zip的各个方式、xml报文的生成,md5加密、邮箱、HTTP请求
- 自定义Feign拦截器,实现设置请求头
- python|BFS解决迷宫最短路径
- leetcode刷题|???算法——搜索(最短路径BFS与DFS)