力扣-104. 二叉树的最大深度
104. 二叉树的最大深度
难度:简单
思路:定义两个变量,分别用来保存二叉树的最大深度,和当前遍历的深度。然后定义一个traverse函数,用来对二叉树进行遍历。
/**
* 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 maxDtph = 0;
//定义一个用来保存当前遍历到的深度的变量 levelDth
int levelDth = 0;
public int maxDepth(TreeNode root) {
traverse(root);
return maxDtph;
}
//定义一个函数用来遍历二叉树
void traverse(TreeNode root){
//边界值判断
if(root == null){
return ;
}
//深度+1
levelDth++;
//如果当前遍历到深度 大于 用来记录二叉树深度 的值。那么就把这个值赋值给maxDtph
if(levelDth > maxDtph){
maxDtph = levelDth;
}
traverse(root.left);
traverse(root.right);
//后序遍历
levelDth--;
}
}
提示
用到了遍历递归的思维