题干解析 去除背景后: 题设定义一颗二叉树,允许我们任意选取不连续的节点,要求返回所有选取方式中所选取节点值之和最大的值。 算法思路 递归分解问题: 针对空树根,我们无从选择。 针对单节点树根,我们有两种选择:选择该根节点/不选择该根节点。 针对一般树根,依旧两种选择:选择该根节点/不选择该根节点。 我们想要让我们的选择总和尽可能大。考虑普通的树根: 如果我们选择根节点,则两个子树需在根节点均不能选的情况下得到最大选择。 如果我们不选择根节点,则子树的节点选择并无过多限制,得到最大选择了即可。 子树的最大选择也可以依照树根类推,只不过同样考虑两种情况,选择子树根节点/不选择子树根节点。...