赞
踩
题目:
题解:
- struct SubtreeStatus {
- int selected;
- int notSelected;
- };
-
- class Solution {
- public:
- SubtreeStatus dfs(TreeNode* node) {
- if (!node) {
- return {0, 0};
- }
- auto l = dfs(node->left);
- auto r = dfs(node->right);
- int selected = node->val + l.notSelected + r.notSelected;
- int notSelected = max(l.selected, l.notSelected) + max(r.selected, r.notSelected);
- return {selected, notSelected};
- }
-
- int rob(TreeNode* root) {
- auto rootStatus = dfs(root);
- return max(rootStatus.selected, rootStatus.notSelected);
- }
- };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。