LeetCode 543. 二叉树的直径

Posted 莴苣&

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 543. 二叉树的直径相关的知识,希望对你有一定的参考价值。

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

 

示例 :
给定二叉树

          1
         /         2   3
       /      
      4   5    

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

 

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

思路:刚开始我走了一些弯路,我想的是求出左边的最大值,加上右边的最大值,就是这棵树的直径,但是后来发现,他的最长直径不一定是两边之和,所以采用了定义全局变量的方法,将整棵树的节点距离遍历,求出最长的直径。

 1 /**
 2  * Definition for a binary tree node.
 3  * struct TreeNode {
 4  *     int val;
 5  *     struct TreeNode *left;
 6  *     struct TreeNode *right;
 7  * };
 8  */
 9  int max=0;
10 int depth(struct TreeNode* root)
11 {
12     if(root==NULL){
13         return 0;
14     }
15     int m=depth(root->left);
16     int n=depth(root->right);
17     max=max>(m+n)?max:(m+n);
18     return 1+(m>n?m:n);
19 }
20 int diameterOfBinaryTree(struct TreeNode* root){
21     max=0;
22     depth(root);
23     return max;
24 }

 

以上是关于LeetCode 543. 二叉树的直径的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 543.二叉树的直径

[leetCode]543. 二叉树的直径

543-二叉树的直径

LeetCode543 二叉树的直径

[LeetCode] 543. 二叉树的直径

LeetCode 543-二叉树的直径