leetcode-543-easy

Diameter of Binary Tree

Given the root of a binary tree, return 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.

The length of a path between two nodes is represented by the number of edges between them.

Example 1:


Input: root = [1,2,3,4,5]
Output: 3
Explanation: 3 is the length of the path [4,2,1,3] or [5,2,1,3].
Example 2:

Input: root = [1,2]
Output: 1
Constraints:

The number of nodes in the tree is in the range [1, 104].
-100 <= Node.val <= 100

思路一:树的直径等于左子树+右子树,每次遍历节点是对比并存储最大直径

    public int diameterOfBinaryTree(TreeNode root) {
        maxDiameter = 0;
        diameterOfBinaryTreeRec(root);
        return maxDiameter;
    }

    private static int maxDiameter = 0;
    public int diameterOfBinaryTreeRec(TreeNode root) {
        if (root == null) {
            return 0;
        }

        int left = diameterOfBinaryTreeRec(root.left);
        int right = diameterOfBinaryTreeRec(root.right);
        maxDiameter = Math.max(maxDiameter, left + right);
        return Math.max(left, right) + 1;
    }
posted @ 2023-01-22 19:58  iyiluo  阅读(13)  评论(0)    收藏  举报