当前位置:   article > 正文

【力扣】[热题HOT100] 543.二叉树的直径_的热热543… ,。

的热热543… ,。

1、题目

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

链接:https://leetcode-cn.com/problems/diameter-of-binary-tree/

 

2、思路分析

1)深度优先遍历
这道题是二叉树深度的变形。该题目可以理解为遍历的最多的节点的个数-1。

ans记录没遍历到的节点的个数,最后将个数-1就是结果。

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
class Solution {
public:
    int ans;
    int Height(TreeNode* root)
    {
        if(root == nullptr)
            return 0;
        int left = Height(root->left);
        int right = Height(root->right);
        ans = max(ans, left + right + 1);
        return max(left , right) + 1;
    }

    int diameterOfBinaryTree(TreeNode* root) {
        ans = 1;
        Height(root);    
        return ans - 1; // 经过最多的节点-1  
    }
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/499083
推荐阅读
相关标签
  

闽ICP备14008679号