解法一:一行代码

public class Solution {
    public int TreeDepth(TreeNode root) {
        return root==null? 0:Math.max(TreeDepth(root.left),TreeDepth(root.right))+1;
    }
}

解法二:BFS, 层次遍历

import java.util.*;
public class Solution {
    public int TreeDepth(TreeNode root) {
        if(root==null) return 0;
        Queue<TreeNode> q=new LinkedList<>();
        q.add(root);
        int level=0;
        while(!q.isEmpty()){
            int size=q.size();
            while(size-->0){
                TreeNode curr=q.poll();
                if(curr.left!=null) q.add(curr.left);
                if(curr.right!=null) q.add(curr.right);
            }
            level++;
        }
        return level;
    }
}