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

[leetcode]543. Diameter of Binary Tree二叉树的直径

时间:2018-02-01 00:14:35      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:roo   []   gpo   blog   nod   mat   post   max   span   

题目中的直径定义为:

任意两个节点的最远距离

没想出来,看的答案

思路是:diameter = max(左子树diameter,右子树diameter,(左子树深度+右子树深度+1))

遍历并更新结果

int res = 1;
    public int diameterOfBinaryTree(TreeNode root) {
        helper(root);
        return res-1;
    }
    public int[] helper(TreeNode root)
    {
        //两个量分别是节点深度,节点最大diameter
        if (root==null) return new int[]{0,0};
        int cur = 0;
        int[] l = helper(root.left);
        int[] r = helper(root.right);
        cur = Math.max(Math.max(l[1],r[1]),l[0]+r[0]+1);
        res = Math.max(res,cur);
        return new int[]{Math.max(l[0],r[0])+1,cur};
    }

 

[leetcode]543. Diameter of Binary Tree二叉树的直径

标签:roo   []   gpo   blog   nod   mat   post   max   span   

原文地址:https://www.cnblogs.com/stAr-1/p/8395000.html

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