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.
1 class Solution { 2 public int diameterOfBinaryTree(TreeNode root) { 3 int[] max = new int[1]; 4 helper(root, max); 5 return max[0] - 1; 6 } 7 8 public int helper(TreeNode root, int[] max) { 9 if (root == null) return 0; 10 int leftMaxHeight = helper(root.left, max); 11 int rightMaxHeight = helper(root.right, max); 12 13 int tempMax = leftMaxHeight + rightMaxHeight + 1; 14 max[0] = Math.max(max[0], tempMax); 15 if (leftMaxHeight > rightMaxHeight) { 16 return leftMaxHeight + 1; 17 } 18 return rightMaxHeight + 1; 19 } 20 }

浙公网安备 33010602011771号