#104 Maximum Depth of Binary Tree

朱雀 2022-08-02 04:58 291阅读 0赞

再来选一道通过率最高的题目~

#104 Maximum Depth of Binary Tree

这是一道二叉树的题目,非常简单,只要DFS就可以啦。不过再次感慨一下要多多提高记事本编程能力呀。

题目要求就是找出从根节点到叶子节点最长路径的depth。不过有一个隐藏的trap,root可能为空哦,第一次就没有考虑到结果还要再提交一次=。=

  1. /**
  2. * Definition for a binary tree node.
  3. * struct TreeNode {
  4. * int val;
  5. * TreeNode *left;
  6. * TreeNode *right;
  7. * TreeNode(int x) : val(x), left(NULL), right(NULL) {}
  8. * };
  9. */
  10. class Solution {
  11. private:
  12. int max = 1;
  13. void godown(TreeNode* node, int depth) {
  14. if(node->left!=NULL) {
  15. godown(node->left, depth+1);
  16. }
  17. if(node->right!=NULL) {
  18. godown(node->right, depth+1);
  19. }
  20. if(node->left==NULL && node->right==NULL) {
  21. if(depth > max) {
  22. max = depth;
  23. }
  24. }
  25. }
  26. public:
  27. int maxDepth(TreeNode* root) {
  28. if (root==NULL) {
  29. return 0;
  30. }
  31. godown(root,1);
  32. return max;
  33. }
  34. };

当然BFS也是可以的啦,效率也一样,不过还要用容器好麻烦,还是DFS简单嘿嘿。

至于说用返回值加一加的方法写DFS我当然也会啊,不过还是习惯带着变量往下走好开心好开心,只是多定义了一个max而已没有实质差别咯,不要在意这些细节……

发表评论

表情:
评论列表 (有 0 条评论,291人围观)

还没有评论,来说两句吧...

相关阅读