LeetCode OJ:Maximum Depth of Binary Tree

来源:互联网 发布:it软件开发是什么 编辑:程序博客网 时间:2024/05/17 22:01

Maximum Depth of Binary Tree

 

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 binary tree * 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)return 0;          queue<TreeNode *>que;        int minLen=0;          int curLev=1;          int nextLev=0;          int depth=0;        que.push(root);          while(!que.empty()){              TreeNode *cur=que.front();              que.pop();            if(cur->left){que.push(cur->left);nextLev++;}              if(cur->right){que.push(cur->right);nextLev++;}              if(--curLev==0){                  curLev=nextLev;                  nextLev=0;                 depth++;            }        }        return depth;    }};

递归版

/** * Definition for binary tree * 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)return 0;        return 1+max(maxDepth(root->left),maxDepth(root->right));    }};


0 0