【题目描述】
【思路】
深度遍历二叉树 每进入一层深度加1 ans维护最大深度
class Solution {
int ans = 0;
public void dfs(TreeNode root,int depth){
if( depth > ans) ans = depth;
if( root == null) return;
dfs(root.right, depth + 1);
dfs(root.left, depth + 1);
}
public int treeDepth(TreeNode root) {
if( root == null ) return 0;
dfs(root, 0);
return ans;
}
}
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public int treeDepth(TreeNode root) {
/**
树的深度等于左右子树的深度较大者 + 1
*/
// 到达叶子节点
if (root == null) return 0;
int left = treeDepth(root.left);
int right = treeDepth(root.right);
return Math.max(left, right) + 1;
}
}