104. Maximum Depth of Binary Tree

来源:互联网 发布:天刀男性捏脸数据 编辑:程序博客网 时间:2024/05/17 13:10

题目:

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.

思路:

本题思路有两种思路:1.递归法  2.层次法

代码:

递归法:

/** * 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 maxDepth(TreeNode* root) {        if(root==NULL)            return 0;        else            return max(maxDepth(root->left),maxDepth(root->right))+1;            }};
层次法:

class Solution {public:    int maxDepth(TreeNode* root) {    if(root == NULL)        return 0;    int res = 0;    queue<TreeNode *> q;    q.push(root);    while(!q.empty())    {        ++ res;        for(int i = 0, n = q.size(); i < n; ++ i)        {            TreeNode *p = q.front();            q.pop();            if(p -> left != NULL)                q.push(p -> left);            if(p -> right != NULL)                q.push(p -> right);        }    }    return res;        }};