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