码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 543. 二叉树的直径

时间:2020-04-26 20:50:05      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:dia   wrk   com   aop   pre   pac   定义   mask   als   

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

 

示例 :
给定二叉树

          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. 二叉树的直径

标签:dia   wrk   com   aop   pre   pac   定义   mask   als   

原文地址:https://www.cnblogs.com/woju/p/12781928.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!