这个题可以这样做,采用递归的思想,
深度是指树的根节点到任一叶子节点路径上节点的数量,因此从根节点每次往下一层深度就会加1。因此二叉树的深度就等于根节点这个1层加上左子树和右子树深度的最大值,每个子树我们都可以看成一个根节点,继续用上述方法求的深度,这里就运用了递归的思想
思路
每个结点不为空,深度累计+1
遍历左右子树,递归算深度
找深度最大值+1
代码如图
public class Solution { public int TreeDepth(TreeNode root) { //如果为空结点,那么没有深度 if(root==null) return 0; //如果不为空,返回子树深度加1 return Math.max(TreeDepth(root.left),TreeDepth(root.right))+1; } }