Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int avgDepth(TreeNode *root)
- {
- if(root == NULL)
- {
- return 0;
- }
- if(root->left == NULL && root->right == NULL)
- {
- return 1;
- }
- queue <TreeNode> nodes;
- nodes.push(root);
- queue <int> depth;
- depth.push(1);
- int counter = 1;
- int sum = 0;
- while(!nodes)
- {
- TreeNode *currentNode = nodes.front();
- nodes.pop();
- int currentDistance = depth.front();
- depth.pop();
- if(currentNode->left != NULL)
- {
- nodes.push(currentNode->left);
- depth.push(currentDistance + 1);
- counter++;
- }
- if(currentNode->right != NULL)
- {
- nodes.push(currentNode->right);
- depth.push(currentDistance + 1);
- counter++;
- }
- sum+=currentDistance;
- }
- return ceil(sum/counter);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement