Advertisement
Guest User

AverageDepth

a guest
Nov 27th, 2014
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. int avgDepth(TreeNode *root)
  2. {
  3. if(root == NULL)
  4. {
  5. return 0;
  6. }
  7.  
  8. if(root->left == NULL && root->right == NULL)
  9. {
  10. return 1;
  11. }
  12.  
  13. queue <TreeNode> nodes;
  14. nodes.push(root);
  15.  
  16. queue <int> depth;
  17. depth.push(1);
  18.  
  19. int counter = 1;
  20. int sum = 0;
  21.  
  22. while(!nodes)
  23. {
  24. TreeNode *currentNode = nodes.front();
  25. nodes.pop();
  26. int currentDistance = depth.front();
  27. depth.pop();
  28.  
  29. if(currentNode->left != NULL)
  30. {
  31. nodes.push(currentNode->left);
  32. depth.push(currentDistance + 1);
  33. counter++;
  34. }
  35.  
  36. if(currentNode->right != NULL)
  37. {
  38. nodes.push(currentNode->right);
  39. depth.push(currentDistance + 1);
  40. counter++;
  41. }
  42. sum+=currentDistance;
  43. }
  44.  
  45. return ceil(sum/counter);
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement