美文网首页
[Leetcode]543. Diameter of Binar

[Leetcode]543. Diameter of Binar

作者: 木易yr | 来源:发表于2019-08-18 00:24 被阅读0次

    543. Diameter of Binary Tree

    Given a binary tree, you need to compute the length of the diameter of the tree. The diameter of a binary tree is the length of the longest path between any two nodes in a tree. This path may or may not pass through the root.

    Example:

    Given a binary tree 
              1
             / \
            2   3
           / \     
          4   5    
    Return 3, which is the length of the path [4,2,1,3] or [5,2,1,3].
    

    Note: The length of path between two nodes is represented by the number of edges between them.
    题意:二叉树的最大直径,
    即一个节点的最大直径 = 它左树的高度 + 它右树的高度
    思路:
    可以将二叉树的直径转换为:二叉树的每个节点的左右子树的高度和的最大值。

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
         int res=0;
        int diameterOfBinaryTree(TreeNode* root) {
            dfs(root);
            return res;
        }
        int dfs(TreeNode* root)
        {
            if(root==NULL)
                return 0;
            int left=dfs(root->left);
            int right=dfs(root->right);
            res= max(left+right,res);
            return max(left,right)+1;
        }
    };
    

    相关文章

      网友评论

          本文标题:[Leetcode]543. Diameter of Binar

          本文链接:https://www.haomeiwen.com/subject/thplsctx.html