leetcode: Maximum Depth of Binary Tree

本文介绍了一种使用深度优先搜索(DFS)算法来计算二叉树最大深度的方法,并通过具体的代码实现展示了如何构造一棵测试用例中的二叉树,进而求得其最大深度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>

using namespace std;

// Test Unit
// Create a tree for test
//            1
//           / \
//          2  3
//         / \  \
//        4  5  6
//       / \
//      7  8
//        /
//       9
struct TreeNode {
    int            val;
    TreeNode*    left;
    TreeNode*    right;
    TreeNode(int x): val(x), left(NULL),right(NULL) {}
};

class Solution {
public:
        //采用DFS的思想
    int maxDepth(TreeNode *root)
    {
        if (NULL == root)
            return 0;
        int l = maxDepth(root->left);
        int r = maxDepth(root->right);

        return l > r ? l + 1:r+1;
    //以上这两种方式有一种更简便的方法
    //return 1 + max(maxDepth(root->left), maxDepth(root->right));
    }

};


int main() {
    TreeNode root(1);
    TreeNode t2(2);
    TreeNode t3(3);
    TreeNode t4(4);
    TreeNode t5(5);
    TreeNode t6(6);
    TreeNode t7(7);
    TreeNode t8(8);
    TreeNode t9(9);

    root.left = &t2;
    root.right = &t3;
    t2.left = &t4;
    t2.right = &t5;
    t3.right = &t6;
    t4.left = &t7;
    t4.right = &t8;
    t8.left = &t9;

    Solution s;
    cout << s.maxDepth(&root) << endl;

    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值