天天看點

【LeetCode 31】104.二叉樹的最大深度

【LeetCode 31】104.二叉樹的最大深度

文章目錄

  • ​​【LeetCode 31】104.二叉樹的最大深度​​
  • ​​一、題意​​
  • ​​二、思考過程​​
  • ​​2.1遞歸法:​​

一、題意

【LeetCode 31】104.二叉樹的最大深度

二、思考過程

**思路:**二叉樹的最大深度就是根節點的高度。

方法:求根節點的高度就是求後序周遊即可。

2.1遞歸法:

  • 确定遞歸函數的參數和傳回值
int getDepth(TreeNode * node)      
  • 确定終止條件
if(node==NULL) return 0;      
  • 确定單層遞歸邏輯

确定單層遞歸的邏輯:先求它的左子樹的深度,再求的右子樹的深度,最後取左右深度最大的數值 再+1 (加1是因為算上目前中間節點)就是目前節點為根節點的樹的深度。

int leftDepth=getDepth(node->left);//左
        int rightDepth=getDepth(node->right);//右
        int depth=1+max(leftDepth,rightDepth);//中      
class Solution {
public:
    int getDepth(TreeNode* node)
    {
        if(node==NULL) return 0;

        int leftDepth=getDepth(node->left);//左
        int rightDepth=getDepth(node->right);//右
        int depth=1+max(leftDepth,rightDepth);//中
        return depth;
    }

    int maxDepth(TreeNode* root)
    {
        return getDepth(root);
    }
};