https://www.geeksforgeeks.org/problems/ ... nt-nodes/1
Для этой проблемы это решение не работает:
class Solution {
public:
// Function to return the maximum sum of non-adjacent nodes.
int getMaxSum(Node *root) {
// code here
int sum1 =0, sum2 =0;
if(root == NULL) return 0;
queue q;
q.push(root);
bool flag = true;
while(!q.empty()){
int sz = q.size();
while(sz--){
Node* front = q.front();
q.pop();
if(flag) sum1 += front -> data;
else sum2 += front -> data;
if(front -> left) q.push(front -> left);
if(front -> right) q.push(front -> right);
}
flag = !flag;
}
return max(sum1,sum2);
}
};
< /code>
Поскольку в узлах нет отрицательных значений, поэтому ответ должен быть либо суммой четных уровней, либо нечетными уровнями? Кроме того, мы выбираем либо четные уровни, либо нечетные уровни, которые мы избегаем прямых родителей - Детские пары
Подробнее здесь: https://stackoverflow.com/questions/796 ... -for-geeks