LeetCode算法题目:Maximum Depth of Binary Tree

来源:互联网 发布:我的世界服务器端编程 编辑:程序博客网 时间:2024/06/14 17:51

题目:

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. 求二叉树的最大深度问题用到深度优先搜索DFS,递归的完美应用,跟求二叉树的最小深度问题原理相同。
  2. 我们也可以使用层序遍历二叉树,然后计数总层数,即为二叉树的最大深度.

代码:

class Solution {public:    int maxDepth(TreeNode* root) {        if (!root) return 0;        return 1 + max(maxDepth(root->left), maxDepth(root->right));    }};
class Solution {public:    int maxDepth(TreeNode* root) {        if (!root) return 0;        int res = 0;        queue<TreeNode*> q;        q.push(root);        while (!q.empty()) {            ++res;            int n = q.size();            for (int i = 0; i < n; ++i) {                TreeNode *t = q.front(); q.pop();                if (t->left) q.push(t->left);                if (t->right) q.push(t->right);            }        }        return res;    }};
0 0
原创粉丝点击