Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void max(Node& root, int& level, int& sum)
- {
- level = 0;
- sum = root.getValue();
- std::deque<Node&> current { root };
- std::deque<Node&> next;
- int curLevel = 0;
- int curSum = 0;
- while ( ! current.empty() ) {
- Node& node = current.front();
- current.pop();
- sum += node.getValue();
- std::copy(std::back_inserter(next), node.begin(), node.end());
- if (current.empty())
- {
- if (curSum > sum) {
- sum = curSum;
- level = curLevel;
- }
- curSum = 0;
- ++curLevel;
- std::swap(current, next);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement