image.png
image.png

题解

  1. /**
  2. * Definition for a binary tree node.
  3. * class TreeNode {
  4. * val: number
  5. * left: TreeNode | null
  6. * right: TreeNode | null
  7. * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
  8. * this.val = (val===undefined ? 0 : val)
  9. * this.left = (left===undefined ? null : left)
  10. * this.right = (right===undefined ? null : right)
  11. * }
  12. * }
  13. */
  14. function maxPathSum(root: TreeNode | null): number {
  15. let min = Number.MIN_SAFE_INTEGER;
  16. function deepLoop(node: TreeNode | null) {
  17. if (!node) return 0;
  18. let left = Math.max(0, deepLoop(node.left));
  19. let right = Math.max(0, deepLoop(node.right));
  20. min = Math.max(min, left + right + node.val);
  21. return Math.max(left, right) + node.val;
  22. }
  23. deepLoop(root);
  24. return min;
  25. };