zoukankan      html  css  js  c++  java
  • [LeetCode] Diameter of Binary Tree

    Given a binary tree, you need to compute the length of the diameter of the tree. The diameter of a binary tree is the length of the longestpath between any two nodes in a tree. This path may or may not pass through the root.

    Example:
    Given a binary tree 

              1
             / 
            2   3
           /      
          4   5    

    Return 3, which is the length of the path [4,2,1,3] or [5,2,1,3].

    Note: The length of path between two nodes is represented by the number of edges between them.

    求二叉树的最长直径,直径可能不会经过根节点。如果经过根节点。则直径是左右子树最长路径之和。如果不经过根节点,则需要把经过的最高子节点作为根节点计算其左右子树最长路径之和。

    class Solution {
    public:
        int res = INT_MIN;
        int diameterOfBinaryTree(TreeNode* root) {
            if (root == nullptr)
                return 0;
            int l = maxDepth(root->left);
            int r = maxDepth(root->right);
            res = max(res, l + r);
            diameterOfBinaryTree(root->left);
            diameterOfBinaryTree(root->right);
            return res;
        }
        
        int maxDepth(TreeNode* node) {
            if (node == nullptr)
                return 0;
            int left = maxDepth(node->left);
            int right = maxDepth(node->right);
            return max(left, right) + 1;
        }
    };
    // 22 ms
  • 相关阅读:
    ZZNU 1995: cots' times
    网站后缀名都有哪些
    webstorm运行到服务器(Apache)
    window系统下node.js环境配置
    window系统安装node.js
    网站创建自定义百度地图
    响应式一级到三级导航
    H5插入视频兼容各大浏览器
    phpStudy环境安装
    jquery on和bind
  • 原文地址:https://www.cnblogs.com/immjc/p/7206363.html
Copyright © 2011-2022 走看看