#3914. 魔幻树庄全路径探秘-难

魔幻树庄全路径探秘-难

🐰😺🌳 兔猫信奥学院的魔幻树庄全路径探秘 🌳😺🐰

在兔猫信奥学院的奇幻园林里,密布着一片古老的“树庄”,房屋排列如同一棵巨大的二叉树。每栋房屋上都刻有当晚可盗取的金币数。加菲老师警告:“若两栋直接相连的房屋同夜被闯入,魔法警报即刻响起!”

聪明的小兔和小猫决定:

他们要寻找一条任意起止、节点之间沿树中连边通行的“路径”,使路径上各房屋金币总和最大。

路径可从任意节点开始,也可以止于任意节点,只要相邻房屋间有边相连、且每栋房屋最多被访问一次。


输入格式

第一行:整数 m,表示完全二叉树数组化表示中的位置总数。
第二行:m 个词,用空格分隔,每个词要么是整数(该位置房屋的金币数),要么是 "null"(该位置不存在房屋)。
  • 数组位置 0…m-1 对应层序节点;
  • 若某位置是 "null",则其左右子节点也视为不存在;
  • 1 ≤ m ≤ 30000
  • 每个金币数在 [−1000,1000] 之间。

输出格式

输出一个整数,表示二叉树中任意路径的最大金币和。

7
1 2 3 null null null null
6
  • 树形:
    1
   / \
  2   3
  • 最优路径 2→1→3,和为 6。

7
-10 9 20 null null 15 7
42
  • 树形:
      -10
      /  \
     9   20
         / \
        15  7
  • 最优路径 15→20→7,总和 42。

🎓 加菲老师寄语:
通过一趟后序遍历,你就能同时计算“向下最大”和“跨节点”的最优路径,成就魔幻树庄的完美盗窃路线!祝探秘顺利!