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;
    }

results matching ""

    No results matching ""