Longest Path in Binary Tree
这题其实是543. Diameter of Binary Tree原题
给个2叉树, 找出从1个叶节点到另1个叶节点最长的路径,返回路径长度
此题因为是返回最长长度的话,一定是从叶节点到叶节点,否则,就往叶节点延伸,可以取得更长的长度。
124是返回最大的和,有可能叶节点是负值,所以并不是一定从叶节点出发。但是这两题的解题思路可以是完全一样。
Solution 1: preorder
private int max = 0
public int longestPath(TreeNode root) {
dfs(root);
return max;
}
private int dfs(TreeNode root) {
if (root == null) return 0;
int left = dfs(root.left);
int right = dfs(root.right);
max = Math.max(max, left + right + 1);
return Math.max(left, right) + 1;
}