您的位置:首页 > 理论基础 > 数据结构算法

104. Maximum Depth of Binary Tree

2017-04-03 00:15 260 查看
Given a binary tree, find its maximum depth.

The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

题目不难:要求我们求出一个二叉树最大深度,也就是从根节点到最远的叶子节点的距离;

所以,我们只需要递归遍历二叉树,达到一个叶子节点的时候,记录深度,我们就能得到最深的深度;

代码如下:

/**

 * Definition for a binary tree node.

 * struct TreeNode {

 *     int val;

 *     TreeNode *left;

 *     TreeNode *right;

 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}

 * };

 */

class Solution {

    public:

    int num;

    int maxDepth(TreeNode *root) {

        if(!root) {

            

            return 0;

        }

        num = numeric_limits<int>::min();

        travel(root, 1);

        return num;

        }

    void travel(TreeNode* node, int level) {

        if(!node->left && !node->right) {

        num = max(num, level);

        return;

        }

        if(node->left) {

        travel(node->left, level + 1);

        }

        if(node->right) {

        travel(node->right, level + 1);

        }

    }

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息