LeetCode-二叉树的深度

二叉树的深度

二叉树的深度

  • 使用递归求解二叉树的深度。
  • 需要注意使用的临界条件。
/**
 * 任意一个二叉树的最大深度
 **/
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
#include<cstdio>
#include<queue>
#include<vector>
using namespace std;
// Definition for a binary tree node.
struct TreeNode {
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
/**
    3
   / \
  9  20
    /  \
   15   7
**/
class Solution {
private:
     int maxdepth=0;
public:
    void DFSdepth(TreeNode* node,int depth){
        if(!node->left&&!node->right){
            maxdepth=max(maxdepth,depth);
            return;
        }
        if(node->left){
            DFSdepth(node->left,depth+1);
        }
        if(node->right){
            DFSdepth(node->right,depth+1);
        }
    }
    int maxDepth(TreeNode* root) {
        if(root)
         DFSdepth(root,1);
        return maxdepth;
    }
};
int main(){
    TreeNode* t1=new TreeNode(3);
    TreeNode* t2=new TreeNode(9);
    TreeNode* t3=new TreeNode(20);
    TreeNode* t4=new TreeNode(15);
    TreeNode* t5=new TreeNode(7);
    t3->left=t4;t3->right=t5;
    t1->left=t2;t1->right=t3;
    Solution solution;
    cout<<solution.maxDepth(t1)<<endl;
    system("pause");
    return 0;
}
posted @ 2020-02-22 20:01  Garrett_Wale  阅读(116)  评论(0编辑  收藏  举报