Почему мой код не работает для этого бинарного дерева вопроса на гиках для гиковC++

Программы на C++. Форум разработчиков
Anonymous
Почему мой код не работает для этого бинарного дерева вопроса на гиках для гиков

Сообщение Anonymous »

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

Вернуться в «C++»