maximum-level-sum-of-a-binary-tree 1.0.0
Maximum Level Sum of a Binary Tree
Loading...
Searching...
No Matches
Solution Class Reference

Public Member Functions

int maxLevelSum (TreeNode *root)
 

Detailed Description

Definition at line 19 of file main.cpp.

Member Function Documentation

◆ maxLevelSum()

int Solution::maxLevelSum ( TreeNode root)
inline

Definition at line 22 of file main.cpp.

23 {
24 if (!root)
25 return 0;
26
27 queue<pair<TreeNode*, int>> node_queue; // int represents node's level starting from 1
28 node_queue.push({root, 1});
29
30 int maximal_sum = root->val;
31 int sum_level = 1;
32
33 int current_sum = 0;
34 int current_level_sum = 1;
35
36 while (!node_queue.empty())
37 {
38 TreeNode* current = node_queue.front().first;
39 int level = node_queue.front().second;
40
41 if (level != current_level_sum)
42 {
43 if (current_sum > maximal_sum)
44 {
45 maximal_sum = current_sum;
46 sum_level = current_level_sum;
47 }
48 current_level_sum = level;
49 current_sum = current->val;
50 }
51 else // level == current_level_sum
52 current_sum += current->val;
53
54 node_queue.pop();
55 if (current->left)
56 node_queue.push({current->left, level + 1});
57 if (current->right)
58 node_queue.push({current->right, level + 1});
59 }
60 if (current_sum > maximal_sum)
61 {
62 maximal_sum = current_sum;
63 sum_level = current_level_sum;
64 }
65
66 return sum_level;
67 }
Definition for a binary tree node.
Definition main.cpp:10
int val
Definition main.cpp:11
TreeNode * left
Definition main.cpp:12
TreeNode * right
Definition main.cpp:13

References TreeNode::left, TreeNode::right, and TreeNode::val.

Referenced by main().


The documentation for this class was generated from the following file: