0
点赞
收藏
分享

微信扫一扫

上海建泰商务数智创新工作室挂牌签约仪式圆满结束

耶也夜 2024-05-16 阅读 16
数据结构

前言

二叉树的深度计算特别适合用递归计算方式。那么递归适合在什么场景使用?

1.必定要有一个明确的结束递归的条件

2.问题可以被分解成更小的、相同形式的子问题。

递归缺点:递归的空间复杂度较高,并且有堆栈溢出的风险,过多的方法调用会耗时较多,还存在一种重复计算问题。

实现原理

将二叉树的深度计算转换为子问题,就是二叉树的左子树和右子树的最大值+1.

具体代码实现

package test8;

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 {

    public int maxDepth(TreeNode root) {
        if(root==null){
            return 0;
        }else{
            int leftHeight=maxDepth(root.left);
            int rightHeight=maxDepth(root.right);
            return Math.max(leftHeight,rightHeight)+1;
        }

    }

    public static void main(String[] args) {
        Solution solution=new Solution();
        TreeNode treeNode=new TreeNode(1);
        treeNode.left=new TreeNode(2);
        treeNode.left.left=new TreeNode(3);
        treeNode.left.right=new TreeNode(4);
        treeNode.right=new TreeNode(2);
        treeNode.right.left=new TreeNode(4);
        treeNode.right.right=new TreeNode(3);
        int res=solution.maxDepth(treeNode);
        System.out.println(res);
    }
}


QA:待定

举报

相关推荐

0 条评论