zoukankan      html  css  js  c++  java
  • 543. 二叉树的直径

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

    示例 :
    给定二叉树

              1
             / 
            2   3
           /      
          4   5    
    

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

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

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        int res=0;
        public int diameterOfBinaryTree(TreeNode root) {
            if(root==null)return 0;
            Depth(root);
            return res;
        }
        private int Depth(TreeNode root){//就是求每个节点的左右子树高度和的最大值
            if(root!=null){
                int left=Depth(root.left);
                int right=Depth(root.right);
                res=Math.max(left+right,res);
                return Math.max(left,right)+1;
            }
            return 0;
        }
    }

  • 相关阅读:
    细菌 状态压缩
    素数
    骑士问题(knight)
    魔法石的诱惑
    平面上的最接近点对
    救援行动(save)
    优先队列
    leetcode 92. 反转链表 II
    leetcode 91. 解码方法
    leetcode 39. 组合总和
  • 原文地址:https://www.cnblogs.com/xxxsans/p/13806960.html
Copyright © 2011-2022 走看看