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

    LeetCode——Diameter of Binary Tree

    Question

    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 longest path 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 max_height = 0;
        int diameterOfBinaryTree(TreeNode* root) {
            if (!root) {
                return 0;
            }
            int left = height(root->left);
            int right = height(root->right);
            int tmp = left + right;
            if (tmp > max_height)
                max_height = tmp;
            diameterOfBinaryTree(root->left);
            diameterOfBinaryTree(root->right);
    
            return max_height;
        }
    
        int height(TreeNode* root) {
            if (!root) {
                return 0;
            }
            else {
                int i = height(root->left);
                int j = height(root->right);
                if (i >= j) {
                    return ++i;
                } else {
                    return ++j;
                }
            }
        }
    };
    
  • 相关阅读:
    Python3——爬取淘宝评论
    python爬虫 URL分析
    python3爬取网页图片
    python_2 / python_3 区别与安装问题
    vue.$nextTick 解决了哪些问题
    Vue 路由缓存
    vue elementui form表单验证
    Hadoop Hive sql 语法详解
    sql server, mysql, oracle平时用法的区别
    Excel中值得收藏的12个函数公式
  • 原文地址:https://www.cnblogs.com/zhonghuasong/p/6656236.html
Copyright © 2011-2022 走看看