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开发,越学习越感觉知识太多,自身了解太少,只能不断追寻
  • 相关阅读:
    Linux下的ping命令
    git stash
    ansiable
    「疫期集训day4」硝烟
    「线段树」「单点修改」洛谷P1198 [JSOI2008]最大数
    「状压DP」「暴力搜索」排列perm
    「疫期集训day3」要塞
    「疫期集训day2」高地
    「疫期集训day1」无言
    「区间DP」「洛谷P1043」数字游戏
  • 原文地址:https://www.cnblogs.com/fengtingxin/p/14239234.html
Copyright © 2011-2022 走看看