1181 · 二叉树的直径

该博客探讨了一种使用深度优先搜索(DFS)解决二叉树最大直径问题的方法。通过递归地计算以每个节点为根的子树的最大深度,并考虑不经过根节点的最长路径,找到整个二叉树的直径。代码中定义了`diameterOfBinaryTree`函数和辅助的`dfs`函数,展示了如何利用DFS策略高效地计算二叉树的直径。

1181 · 二叉树的直径

方法1:DFS

       //1.经过根节点,左右子树的最大深度相加
        //2.不经过根节点,找出根节点的左子树或者根节点的右子树作为根节点的最长路径
        int maxv = 0;

        public int diameterOfBinaryTree(TreeNode root) {
            // write your code here
            dfs(root);
            return maxv;
        }

        private int dfs(TreeNode root) {
            if (root == null) return 0;
            int left = dfs(root.left);
            int right = dfs(root.right);
            maxv = Math.max(maxv, left + right);
            return Math.max(left, right) + 1;
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值