zoukankan      html  css  js  c++  java
  • 【力扣】543. 二叉树的直径

    给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。

    示例 :
    给定二叉树

    1
    /
    2 3
    /
    4 5
    返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。

    注意:两结点之间的路径长度是以它们之间边的数目表示。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/diameter-of-binary-tree
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
    
        int max = 0;
    
        public int diameterOfBinaryTree(TreeNode root) {
            //那么这个题目可以转换为可以理解的意思,左右子树高度和的最大值
            def(root);
            return max;
        }
        
        //求高度
        public int def(TreeNode root){
            if(root != null){
                int right = def(root.right);
                int left = def(root.left);
                int temp = right + left;
                if(temp > max){
                    max = temp;
                }
                return Math.max(right , left) + 1;
            }
            return 0;
        }
    
        //时间复杂度 O(n)
        //空间复杂度 O(n) -- 递归
    }
    一个入行不久的Java开发,越学习越感觉知识太多,自身了解太少,只能不断追寻
  • 相关阅读:
    LeetCode 1
    Thinking in Java学习杂记(第7章)
    工程优化部分概念
    Thinking in Java学习杂记(5-6章)
    Thinking in Java学习杂记(1-4章)
    python中map()和dict()的用法
    JavaWeb高级编程(下篇)
    对CSDN的理性吐槽
    CSDN博客已经打不开了
    大连交大教务一键教学评价
  • 原文地址:https://www.cnblogs.com/fengtingxin/p/14239234.html
Copyright © 2011-2022 走看看