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 @   Garrett_Wale  阅读(118)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示