image.pngimage.png

image.png

题解

  1. /**
  2. * Definition for a binary tree node.
  3. * function TreeNode(val, left, right) {
  4. * this.val = (val===undefined ? 0 : val)
  5. * this.left = (left===undefined ? null : left)
  6. * this.right = (right===undefined ? null : right)
  7. * }
  8. */
  9. /**
  10. * @param {number[]} nums
  11. * @return {TreeNode}
  12. */
  13. var constructMaximumBinaryTree = function (nums) {
  14. return build(nums, 0, nums.length - 1);
  15. };
  16. const build = (nums, low, high) => {
  17. let idx = 0;
  18. let maxValue = Number.MIN_SAFE_INTEGER;
  19. for (let i = low; i <=high; i++) {
  20. let num = nums[i];
  21. if (num > maxValue) {
  22. maxValue = num;
  23. idx = i;
  24. }
  25. }
  26. if (low > high) return null;
  27. let newNode = new TreeNode(maxValue);
  28. newNode.left = build(nums, low, idx-1);
  29. newNode.right = build(nums, idx + 1, high);
  30. return newNode;
  31. }