二叉树的最大深度

来源:互联网 发布:mac不能玩游戏的原因 编辑:程序博客网 时间:2024/06/07 18:22

一.题目描述

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远叶子节点的距离。

样例

给出一棵如下的二叉树:

  1 / \ 2   3   / \  4   5

这个二叉树的最大深度为3.

二.解题思路

利用递归分别遍历左子树和右子树,每递归一次节点到根节点的距离加1,最后比较哪个子树的最后一个节点与根节点的距离最远.
三.实现代码

/** * Definition of TreeNode: * class TreeNode { * public: *     int val; *     TreeNode *left, *right; *     TreeNode(int val) { *         this->val = val; *         this->left = this->right = NULL; *     } * } */class Solution {public:    /**     * @param root: The root of binary tree.     * @return: An integer     */    int maxDepth(TreeNode *root) {        // write your code here        if(root==NULL) return 0;        int leftdepth=maxDepth(root->left);        int rightdepth=maxDepth(root->right);        if(leftdepth>rightdepth) return leftdepth+1;        else return rightdepth+1;            }};
四.感悟

返回的时候需要加1,因为根节点也算一个深度.
0 0