求二叉树的深度

求二叉树的深度_第1张图片

求二叉树的深度_第2张图片 

这个题可以这样做,采用递归的思想,

深度是指树的根节点到任一叶子节点路径上节点的数量,因此从根节点每次往下一层深度就会加1。因此二叉树的深度就等于根节点这个1层加上左子树和右子树深度的最大值,每个子树我们都可以看成一个根节点,继续用上述方法求的深度,这里就运用了递归的思想

思路

每个结点不为空,深度累计+1

遍历左右子树,递归算深度

找深度最大值+1

求二叉树的深度_第3张图片

 

代码如图

public class Solution {
    public int TreeDepth(TreeNode root) {
        //如果为空结点,那么没有深度
        if(root==null)
           return 0;
        
        //如果不为空,返回子树深度加1
        return   Math.max(TreeDepth(root.left),TreeDepth(root.right))+1;
        
    }
}

你可能感兴趣的:(数据结构)